Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    39

    [Ajax + php]Redirect ajax:

    Ciao a tutti. Ho il form seguente che chiama il programma xmlhttpPost Ajax onSubmit, il quale mi restituisce in una div il risultato dell'elaborazione della pagina Valida.php.
    Problema:dopo la validazione, vorrei redirezionare l'utente ad un'altra pagina con Ajax aggiungendo un parametro alla funzione xmlhttpPost. Potete aiutarmi?

    form:
    codice:
    <div id="MyResult"></div><form action="Valida.php" method="post" onsubmit="xmlhttpPost('Valida.php', 'validazione', 'MyResult', '<img src=\'/imgages/pleasewait.gif\'>'); return false;"><input type="text" name="via" id="via" value="via"/></form>
    valida.php:

    codice:
    if(isset($_POST['via'])){echo "Ok!"}
    xmlhttpPost:
    codice:
    function xmlhttpPost(strURL,formname,responsediv,responsemsg) { var xmlHttpReq = false; var self = this; // Xhr per Mozilla/Safari/Ie7 if (window.XMLHttpRequest) { self.xmlHttpReq = new XMLHttpRequest(); } // per tutte le altre versioni di IE else if (window.ActiveXObject) { self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); } self.xmlHttpReq.open('POST', strURL, true); self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); self.xmlHttpReq.onreadystatechange = function() { if (self.xmlHttpReq.readyState == 4) { // Quando pronta, visualizzo la risposta del form updatepage(self.xmlHttpReq.responseText,responsediv); } else{ // In attesa della risposta del form visualizzo il msg di attesa updatepage(responsemsg,responsediv); } } self.xmlHttpReq.send(getquerystring(formname)); } function getquerystring(formname) { var form = document.forms[formname]; var qstr = ""; function GetElemValue(name, value) { qstr += (qstr.length > 0 ? "&" : "") + escape(name).replace(/\+/g, "%2B") + "=" + escape(value ? value : "").replace(/\+/g, "%2B"); //+ escape(value ? value : "").replace(/\n/g, "%0D"); } var elemArray = form.elements; for (var i = 0; i < elemArray.length; i++) { var element = elemArray[i]; var elemType = element.type.toUpperCase(); var elemName = element.name; if (elemName) { if (elemType == "TEXT" || elemType == "TEXTAREA" || elemType == "PASSWORD" || elemType == "BUTTON" || elemType == "RESET" || elemType == "SUBMIT" || elemType == "FILE" || elemType == "IMAGE" || elemType == "HIDDEN") GetElemValue(elemName, element.value); else if (elemType == "CHECKBOX" && element.checked) GetElemValue(elemName, element.value ? element.value : "On"); else if (elemType == "RADIO" && element.checked) GetElemValue(elemName, element.value); else if (elemType.indexOf("SELECT") != -1) for (var j = 0; j < element.options.length; j++) { var option = element.options[j]; if (option.selected) GetElemValue(elemName, option.value ? option.value : option.text); } } } return qstr; } function updatepage(str,responsediv){ document.getElementById(responsediv).innerHTML = str; }
    Ringrazio in anticipo per tutte le risposte.
    M.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Il crossposting non e' permesso, se lo ritieni, puoi chiedere al moderatore dell'altro forum di spostare la discussione.
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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.