- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- Invio del form sulla stessa pagina index.php
-
Invio del form sulla stessa pagina index.php
Ciao a tutti.
ho un problema con ajax, vorrei fare in modo che l'invio del form sta nella stessa pafina index.php e no in thank-you.php
Ho trovato questo tutorial per imparare ma nn mi e' chiara ancora la parte su come devo mandare i valori che mi servono alla stessa pagina index.php
Vi posto il codice// AJAX function GetXmlHttpObject() { if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari return new XMLHttpRequest(); } if (window.ActiveXObject) { // IE5, IE6 return new ActiveXObject("Microsoft.XMLHTTP"); } return null; } function submitFormWithAjax() { var requestPost = new GetXmlHttpObject(); var checkFormSendMail = document.formSendMail.checkFormSendMail.value; var sender = document.formSendMail.sender.value; var sendTo = document.formSendMail.sendTo.value; var subject = document.formSendMail.subject.value; var textMessage = document.formSendMail.textMessage.value; var captcha = document.formSendMail.captcha.value; var parameters = "checkFormSendMail=" + checkFormSendMail + "&sender=" + sender + "&sendTo=" + sendTo + "&subject=" + subject + "&textMessage=" + textMessage + "&captcha=" + captcha; requestPost.open("POST", "index.php", true); requestPost.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); requestPost.send(parameters); requestPost.onreadystatechange = function() { if(requestPost.readyState == 4 && requestPost.status == 200) { document.getElementById("divFormMail").innerHTML = requestPost.responseText; document.getElementById("divUploadFile").style.display = "none"; } else { document.getElementById("formSendMail").innerHTML = "An error has occured making the request"; } } } // AJAX
Provando il codice in questo modo funziona ma ho dentro il divFormMail l'intera pagina index.php duplicate e quindi ne vedo due una al centro e l'altra dato che sta' nel div un po' spostata a destra e in basso...
Nn mi e' chiara sta parterequestPost.onreadystatechange = function() { if(requestPost.readyState == 4 && requestPost.status == 200) { document.getElementById("divFormMail").innerHTML = requestPost.responseText; document.getElementById("divUploadFile").style.display = "none"; } else { document.getElementById("formSendMail").innerHTML = "An error has occured making the request"; } }
Come faccio ad usare la stessa pagina index visto che le variabili POST stanno li? thanks!!
-
Raga dai nessuno sa come fare? please...mi ci sto' scervellando!!
-
Ciao CIMO,
il comportamento che hai descritto è normale dato che carichi il contenuto di index.php sul div divFormMail.
Anziché richiamare index.php richiama un altra pagina fatta ad hoc, per esempio rispostaform.php che contiene solamente il codice che vuoi venga inserito dentro divFormMail dopo l'elaborazione del form.