Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    154

    recuperare valori post con ajax

    Salve a tutti, dovrei passare con uno script ajax dei valori presi da una form e farli elaborare da una pagina php.
    codice:
    function getXMLHttp()
    {
      var xmlHttp
    
      try
      {
        //Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
      }
      catch(e)
      {
        //Internet Explorer
        try
        {
          xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
          try
          {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
          }
          catch(e)
          {
            alert("Il tuo browser non supporta AJAX!")
            return false;
          }
        }
      }
      return xmlHttp;
    }
    
    function MakeRequest()
    {
      var xmlHttp = getXMLHttp();
     
      xmlHttp.onreadystatechange = function()
      {
        if(xmlHttp.readyState == 4)
        {
          HandleResponse(xmlHttp.responseText);
        }
      }
    
      xmlHttp.open("POST", "invia.php", true);
      xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      xmlHttp.send("nome=&nome_amico=&mail_amico= ");
    }
    
    function HandleResponse(response)
    {
      document.getElementById('ResponseDiv').innerHTML = response;
    }
    Non riesco a farlo funzionare. Se posto invece normalmente il form funziona, quindi presumo che non riesco a passare i dati tramite ajax. qualcuno può darmi una mano? Grazie in anticipo.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Passi solo i nomi dei parametri ma non i valori...

    xmlHttp.send("nome=&nome_amico=&mail_amico= ");

    Ora non so come sia fatto il tuo form, ma in generale devi usare:
    codice:
      xmlHttp.send("nome=" + document.nomeForm.nomeCampo1.value + "&nome_amico=" + document.nomeForm.nomeCampo2.value + "&mail_amico=" + document.nomeForm.nomeCampo3.value);
    ciao
    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    154
    Ti ringrazio, provo subito..

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    154
    ciao. Adesso passa i valori, ma và alla pagina php.
    Nel form c'è
    codice:
    onsubmit="MakeRequest(); return false;"
    ma non funziona comunque.

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Se non funziona e' probabile che nella funzione MakeRequest() ci sia un errore... postala cosi' come l'hai modificata.

    ciao

    ps: posta anche la riga del form
    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    154
    Ciao, perdona la poca velocità della risposta ma era sabato ed ero fuori...
    Cmq, la funzione MakeRequest() è rimasta identica a quella postata prima, eccetto per la modifica che mi hai suggerito
    codice:
      xmlHttp.send("nome=" + document.nomeForm.nome.value + "&nome_amico=" + document.nomeForm.nome_amico.value + "&mail_amico=" + document.nomeForm.mail_amico.value);
    Mentre il form è questo:
    codice:
    <form method="post" name="invia" id="invia" action="invia.php" onsubmit="MakeRequest(); return false;">
    <fieldset>
    <legend>Invia</legend>
    <label>Il tuo nome:
    <input name="nome" type="text" id="nome" /></label>
    <label>Il nome del tuo amico:
    <input name="nome_amico" type="text" id="nome_amico" /></label>
    <label>L&acute;indirizzo email del tuo amico:
    <input name="mail_amico" type="text" id="mail_amico" /></label>
    </fieldset>
    <fieldset>
    <legend>Invia le informazioni</legend>
    <p class="main_paragraph">Se hai finito di inserire i dati premi sul pulsante invia. Per cancellare tutti i dati inseriti premi reset</p>
    <input  class="vai" type="submit" value="Invia" name="invia"   />
    </fieldset>
    <div id="ResponseDiv"></div>
    </form>

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da j4ck455
    codice:
      xmlHttp.send("nome=" + document.nomeForm.nome.value + "&nome_amico=" + document.nomeForm.nome_amico.value + "&mail_amico=" + document.nomeForm.mail_amico.value);
    Sicuramente manca ? iniziale nel send cosi:
    codice:
    xmlHttp.send("?nome=" + document.nomeForm.nome.value + "&nome_amico=" + document.nomeForm.nome_amico.value + "&mail_amico=" + document.nomeForm.mail_amico.value);
    se non dovesse ancora andare documentati qui:
    http://javascript.html.it/guide/lezi...afica-clienti/
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Spinto dalla curiosità ho provato a vedere... Ed ho visto che il codice funziona perfettamente con IE8, Firefox e Opera. Non ho controllato il codice, ma è un fatto che funziona.
    Questa è la pagina a.htm di prova

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
    
        <script language="javascript" type="text/javascript">
    // <!CDATA[
    function getXMLHttp()
    {
      var xmlHttp
    
      try
      {
        //Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
      }
      catch(e)
      {
        //Internet Explorer
        try
        {
          xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
          try
          {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
          }
          catch(e)
          {
            alert("Il tuo browser non supporta AJAX!")
            return false;
          }
        }
      }
      return xmlHttp;
    }
    
    function MakeRequest()
    {
      var xmlHttp = getXMLHttp();
     
      xmlHttp.onreadystatechange = function()
      {
        if(xmlHttp.readyState == 4)
        {
          HandleResponse(xmlHttp.responseText);
        }
      }
    
      xmlHttp.open("POST", "a.aspx", true);
      xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      xmlHttp.send("nome=Pietro&nome_amico=Nicola&mail_amico=xxx");
    }
    
    function HandleResponse(response)
    {
      document.getElementById('ResponseDiv').innerHTML = response;
    }
    
    
    // ]]>
    </script>
    
    </head>
    <body>
        <form  action="a.aspx" method="post" onsubmit="MakeRequest(); return false;">
            <input id="Submit1" type="submit" value="submit" />
        </form>
        <div id="ResponseDiv"></div>
    </body>
    </html>
    ho solo, per mia convenienza, modificata questa riga:

    xmlHttp.send("nome=Pietro&nome_amico=Nicola&mail_a mico=xxx");

    Pietro

  9. #9
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da j4ck455
    la funzione MakeRequest() è rimasta identica a quella postata prima, eccetto per la modifica che mi hai suggerito
    codice:
      xmlHttp.send("nome=" + document.nomeForm.nome.value + "&nome_amico=" + document.nomeForm.nome_amico.value + "&mail_amico=" + document.nomeForm.mail_amico.value);
    Mentre il form è questo:
    codice:
    <form method="post" name="invia" id="invia" action="invia.php" onsubmit="MakeRequest(); return false;">
    ciao
    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

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    154
    ops che svista.....
    Ora funziona.

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.