• User Attivo

    [Risolto] Problema con http.responseText.split (forse)

    Salve,
    ho realizzato questo piccolo script.
    All'inizio nella pagina si ha un'immagine e il testo così:

    [ICO] Testo

    Se si clicca sull'immagine [ICO] viene invocata la funzione modifica() e al posto del testo apparirà un piccolo form composto da una textbox e da 2 pulsanti, uno per inviare e uno per tornare allo stato iniziale (quindi far scomparire questo form di modifica).

    Il resto del motore ajax richiama la pagina mod.php?&join= che restituisce 0 se la sessione è scaduta o 1 se è stato eseguito il cambiamento.
    Successivamente viene eseguito lo split dei risultati
    results = http.responseText.split(";");
    viene nascosto il form delle modifice e viene visualizzata la scritta opportuna.

    Fin qui nessun problema.
    Ma se per caso ci viene in mente di effettuare la modifica una seconda volta, andiamo a cliccare sull'immagine [ICO] ci riappare il bel form, lo compiliamo, lo inviamo e non succede niente.
    Rimane sullo schermo il form per la modifica come se non sia stato eseguito uno degli if relativi a results[0]
    Dico questo perchè in realtà basta un refresh e si vede che il nome è stato cambiato, ciò significa che la pagina mod.php?&join= è stata richiamata.

    Qualcuno ha idea di cosa accade e di come posso risolvere?
    Qui sotto vi fornisco il codice incriminato 🙂

    function modifica()
    {
    document.getElementById('span_modifica').innerHTML='<input type="text" id="nomesito"><input type="button" value="Modifica" name="modifica" onclick="mod_nomesito()"><input type="button" value="Chiudi" name="chiudi" onclick="chiudi_nomesito()">';
    }

    var urlmod2 = "mod.php?&join=";

    function handleHttpResponse_mod() {

    if (http.readyState == 4) {

    results = http.responseText.split(";");
    
    
    		if (results[0]==0) { document.getElementById('span_modifica').innerHTML= 'SESSIONE SCADUTA'; }
    		if (results[0]==1) { document.getElementById('txt_nomesito').innerHTML=document.getElementById('nomesito').value; document.getElementById('span_modifica').innerHTML=""; }
    

    }

    }

    function mod_nomesito() {

    var myTextField = document.getElementById('nomesito').value;
    
    
    http.open("GET", urlmod2 + escape(myTextField), true);
    

    http.onreadystatechange = handleHttpResponse_mod;

    http.send(null);

    }

    function chiudi_nomesito() {
    document.getElementById('modifica').innerHTML="";
    }


  • User Attivo

    risolto