Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [AJAX-PHP] Invio dati POST e conseguente refresh

    Buon giorno, attraverso lo script che posto di seguito, vorrei sapere cortesemente se è possibile refreshare la pagina,sempre attraverso AJAX, dopo l'invio dei dati con il metodo POST.
    codice:
    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', 'edit_in_place/update.php', 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) {
    			//alert("Error 4" + getvar); alert di prova per vedere se passa il valore getvar
                if (http_request.status == 200) {
    				document.getElementById(getvar).innerHTML = "<a href=\"javascript:void(null);\" onclick=\"change(this,'"+getvar+"')\">"+eval("document.forms.dinamicform."+getvar+".value")+"</a>";
    				//document.getElementById("result").innerHTML = http_request.responseText;//commento su result perchè non c'è <div id="result"></div> per vedere il risultato
                } 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' name='"+textname+"' value='"+testovecchio+"' style='width:80px'><input type='button' value='ok' onclick=\"makeRequest(\'"+textname+"\')\">";
        }
    pagina invio dati:
    codice:
    <form name="dinamicform"></form>
    Praticamente, ho due parti di una pagina che riepilogano gli stessi dati.
    In una delle due ho l'opportunità di cambaire il dato, per inviarlo,tramite la pagina update.php al DB per una Modifica.

    Dopo inviato i dati vorrei che si refreshasse la pagina per vederne aggiornato il contenuto.
    E' possibile farlo?Se si come?
    Grazie mille e buona giornata.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133

    Re: [AJAX-PHP] Invio dati POST e conseguente refresh

    Originariamente inviato da ANTAGONIA
    ..E' possibile farlo?Se si come?
    Grazie mille e buona giornata.
    Ma non ha senso usare ajax per non ricaricare la pagina per poi "refresciarla" (ricaricarla) fai un invio "normale" aggiornando i dati sul server a conclusione rimandi alla pagina "originale".
    Se questa soluzione non ti piace e vuoi proseguire con ajax al respose (alla risposta ajax) aggiungi location.reload()
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3

    Re: Re: [AJAX-PHP] Invio dati POST e conseguente refresh

    Originariamente inviato da cavicchiandrea
    Ma non ha senso usare ajax per non ricaricare la pagina per poi "refresciarla" (ricaricarla) fai un invio "normale" aggiornando i dati sul server a conclusione rimandi alla pagina "originale".
    No no, io voglio fare proprio questo....usare ajax per rimandare alla pagina originale dopo aver aggiornato i dati!
    Come faccio?
    grazie mille

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133

    Re: Re: Re: [AJAX-PHP] Invio dati POST e conseguente refresh

    Originariamente inviato da ANTAGONIA
    No no, io voglio fare proprio questo....usare ajax per rimandare alla pagina originale dopo aver aggiornato i dati!
    Come faccio?
    grazie mille
    Come non detto, avevo capito male http://javascript.html.it/guide/leggi/95/guida-ajax/
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    grazie per la dritta, poi gli do un'occhiata.
    Per il resto credo che, lo script già fa quello che vorrei, purtroppo non per tutta la pagina.
    Non riesco a capire dove va a ricaricare la porzione di pagina aggiornata in modo asincrono..
    Puoi aiutarmi a capire per favore?
    grazie mille....

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non penso proprio che lo script postato vada bene (per lo meno com'è scritto) passi una variabile "getvar" che prima la identifichi come un (presumo) campo text del form document.forms.dinamicform."+getvar+".value poi diventa un div (o oggetto html non + form) document.getElementById(getvar).innerHTML = "<a href=\"java-script:void(null);\" onclick=\"change(this,'"+getvar+"')\">"+eval("docu ment.forms.dinamicform."+getvar+".value")+"</a>";
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    se lo dici tu mi fido
    però nella pagina php che strutturo in modo dinamico ho questa sintassi:
    Codice PHP:
    <span id='cognome_".$cRiga['id']."'>
    <
    a href=\"javascript:void(null);\" onclick=\"change(this,'cognome_".$cRiga['id']."')\">".
    ucfirst(stripslashes(trim($cRiga['cognome'])))."
    </a>
    </span> 
    Se guardi bene, c'è il link che invia i dati.
    Lo stesso, richiama la funzione change, che trasforma il link in
    codice:
    function change(link,textname){
    if(link.innerText){testovecchio=link.innerText}else{testovecchio=link.text}
    document.getElementById(textname).innerHTML="<input type='text' name='"+textname+"' value='"+testovecchio+"' style='width:80px'><input type='button' value='ok' onclick=\"makeRequest(\'"+textname+"\')\">";
    }
    input text con annesso pulsante ok, che richiama la funzione principale.

    Ora, quello che non ho capito è, subito dopo aver cliccato su ok, mi ritorna la modifica, ma non so qual'è la porzione di script che lo fa.
    Potresti indicarmela?
    Grazie ancora

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    response:
    codice:
    if (http_request.status == 200) {
    				document.getElementById(getvar).innerHTML = "<a href=\"java-script:void(null);\" onclick=\"change(this,'"+getvar+"')\">"+eval("document.forms.dinamicform."+getvar+".value")+"</a>";
    				//document.getElementById("result").innerHTML = http_request.responseText;//commento su result perchè non c'è <div id="result"></div> per vedere il risultato
                }
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Ciao Andrea buon giorno, allora, la pagina dove voglio fare il refresh, l'ho divisa in due, la parte con i dati che posso modificare e quella dove faccio il refresh.
    Ora, inserendo questa porzione di script in questo punto (*) preciso:
    codice:
     function scrivi(getvar) {
            if (http_request.readyState == 4) {
    			//alert("Error 4" + getvar); alert di prova per vedere se passa il valore getvar
                if (http_request.status == 200) {
    				//porzione di script che effettua la modifica...
    				document.getElementById(getvar).innerHTML = "<a href=\"javascript:void(null);\" onclick=\"change(this,'"+getvar+"')\">"+eval("document.forms.dinamicform."+getvar+".value")+"</a>";
    				document.getElementById("result").innerHTML = http_request.responseText;
    				
                                    (*)
    				http_request.open('POST', 'edit_in_place/organi_sx.php',true);
    				http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    				http_request.setRequestHeader("connection", "close");
    				http_request.send(null);				
    				
                } else {
                    alert('There was a problem with the request.');
                }
            }
    		
        }
    una volta eseguita la modifica, mi refrescia la pagina organi_sx.php.
    Purtroppo il problema è che, appena eseguito il ricarico della pagina organi_sx.php, l'utilizzo della CPU aumenta del 60%, passo da un 8% ad un 68%.
    Praticamente continua a ricaricare..
    Non dovrebbe chiudere la connessione verso la pagina organi_sx.php con questa porzione di script?
    codice:
    http_request.setRequestHeader("connection", "close");
    Grazie mille.....

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Con quel comando so che ci sono problemi con IE da testare, d'altronde se al response riesegui una richiesta ajax è ovio che entri in un loop infinito forse la logica è sbagliata, non sapre cosa consigliarti faccio molta fatica a seguirti
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.