Visualizzazione dei risultati da 1 a 8 su 8

Visualizzazione discussione

  1. #1
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258

    Edit in place, modifica al volo in ajax

    Ho uno script che mi permette di modificare del testo al volo in una pagina; lo trasforma in un'input text e lo salva tramite un secondo file php o asp.

    Quando clicco sul testo,dopo aver modificato la frase, lo script fa il suo dovere ed all'evento onblur (ovvero quando clicco con il tasto su un'altra parte della pagina o quando premo TAB) effettua la modifica.

    Però vorrei che la modifica fosse effettuata anche quando premo invio dopo aver modificato la frase ma se premo invio viene processato il form non effettuando la modifica.

    per semplificare oltre a trascrivere il codice allego il file in formato zip.

    codice:
    <script type="text/javascript" language="javascript">
        var http_request = false;
    
    
        function makeRequest(getvar) {
    
    
            http_request = false;
            if (window.XMLHttpRequest) { // Mozilla, Safari,...
                http_request = new XMLHttpRequest();
                if (http_request.overrideMimeType) {
                    //http_request.overrideMimeType('text/xml');
                    // See note below about this line
                }
            } else if (window.ActiveXObject) { // IE
                try {
                    http_request = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    try {
                        http_request = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (e) {}
                }
            }
    
    
            if (!http_request) {
                alert('Giving up :( Cannot create an XMLHTTP instance');
                return false;
            }
            http_request.onreadystatechange = function(){
            scrivi(getvar);
        }
            http_request.open('POST', 'edit2.asp', true);
        http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        postvar="campo="+getvar+"&value="+eval("document.forms.dinamicform."+getvar+".value");
            http_request.send(postvar);
    
    
        }
    
    
        function scrivi(getvar) {
        
            if (http_request.readyState == 4) {
                if (http_request.status == 200) {
            document.getElementById(getvar).innerHTML = "<a onclick=\"change(this,'"+getvar+"')\">"+eval("document.forms.dinamicform."+getvar+".value")+"</a>";
            document.getElementById("result").innerHTML = http_request.responseText;
                } else {
                    alert('There was a problem with the request.');
            
                }
            }
    
    
        }
        
        function change(link,textname){
             //link.innerText e link.text sono stessa cosa, c'è differenza tra ie e firefox
        if(link.innerText){testovecchio=link.innerText}else{testovecchio=link.text}
        //riscrivo il contenuto del div
        document.getElementById(textname).innerHTML="<input type='text' autocomplete='off' name='"+textname+"' value='"+testovecchio+"' onBlur=\"makeRequest(\'"+textname+"\')\" > ";
        }
    </script>
    
    
    <form name="dinamicform">
    <div id="Prezzo"><a onclick="change(this,'Prezzo')">Clicca per modificare</a></div>
    </form>
    
    
    <div id="result"></div>
    File allegati File allegati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.