Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762

    [AJAX] (non) Passaggio di dati in POST.

    Buongiorno a tutti,

    ..proprio non riesco a capire perchè i dati non vengono passati tramite AJAX. Eppure da altre parti utilizzo stessa sintassi, ecc!


    Html del form:
    codice:
    <label>Nome</label>
     <input type="text" name="user_name" />
       <input id="submitButton" type="button" value="Send" />

    Codice che esegue la chiamata:
    codice:
    var ajaxRequest = new XMLHttpRequest;
         ajaxRequest.open("POST","check.php",true);
         ajaxRequest.setRequestHeader("Contet-Type","application/x-www-form-urlencoded");
         ajaxRequest.onreadystatechange=function(){
           if (ajaxRequest.readyState==4){
             eval(ajaxRequest.responseText);
           }
         }
         // La variabile input values sta in un array js poche righe di codice sopra..
         ajaxRequest.send("user_name="+encodeURIComponent(inputValues[0]));
    Codice php che riceve:
    Codice PHP:
    if(!isset($_POST['user_name'])){
      echo 
    "alert('no');";
      exit();
    } else {
      echo 
    "alert('si');";
      exit();


    Esce sempre "no" !!

    Ma perchè??

    Grazie in anticipo..



    EDIT: non fate caso al "button"..l'evento che scatena la chiamata è preso tramite "click" su oggetto jQuery. E no, anche se metto "submit" con "event.preventDefault();" la risposta è la medesima..

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    <input type="text" name="user_name" /> manca l'attributo value="" controlla che non sia quello

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    ..la risposta è sempre no

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Io di solito uso jquery, non uso piu' la richiesta scritta con codice classico.
    Se fai un var_dump dei dati in post che ti ritorna?

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Se sostituisco "no" con var_dump non mi risponde la pagina

    Ma la stranezza è che lo stesso identico metodo di chiamata lo utilizzo altrove e funziona alla perfezione!


  6. #6
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Intendevo var_dump($_POST) o comunque per testare i dati che passi in php.
    Non conosco i tuoi script, era un indicazione per fare un test.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Il var_dump riporta tutto in modo corretto, se imposto l'action e il method nel tag form.

    ...mah...proprio non capisco...

  8. #8
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Provando il tuo codice mi da un errore su inputValue

    usando la sintassi piu' classica ,supponendo che io sia in index.php con cerca.php allo stesso livello di cartelle...

    codice:
    <script type="text/javascript">
    
    function test(){
    	var xmlhttp;
    	if (window.XMLHttpRequest)
    	  {// code for IE7+, Firefox, Chrome, Opera, Safari
    	  xmlhttp=new XMLHttpRequest();
    	  }
    	else
    	  {// code for IE6, IE5
    	  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    	  }
    	xmlhttp.onreadystatechange=function()
    	  {
    	  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    	    {
    		    alert(xmlhttp.responseText)
    	    document.getElementById("prova").innerHTML=xmlhttp.responseText;
    	    }
    	  }
    	xmlhttp.open("GET","cerca.php?user_name=mario",true);
    	xmlhttp.send();
    	}	
    </script>
    
     <div id="prova">XXX </div>
       <input id="submitButton" onclick="javascript:test();" type="button" value="Send" />
    Funziona, facendo un echo della variabile in get.

    Io di solito uso jquery che mi viene molto più comodo...

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Dunque l'inputValue è presa così:

    codice:
    for(i=0;i<(formName.elements.length-1);i++){ // C'è -1 per evitare di prendere il pulsante..
      inputValues[i] = formName.elements[i].value;
      // Dove "formName" è l'attributo name="" del tag form
    }
    Se fai un "alert('typeof inputValues[0]');" vedrai che è "string"...quindi dovrebbe essere ok.

    Ad ogni modo, prendendo il valore anche tramite $("#inputX").val(); , esso non viene passato e la risposta è sempre "no".


    E' veramente strano perchè credimi, lo stesso metodo lo utilizzo in praticamente tutte le robe ajax che finora usato e funzionano perfettamente!

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762


    codice:
    ajaxRequest.setRequestHeader("CONTET-Type","application/x-www-form-urlencoded");



    ...mi prendo un attimo a schiaffi da solo per mezz'oretta...

    Grazie mille.


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.