Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    121

    Script Ajax non invia a PHP

    Salve a tutti!
    Ho un banalissimo script AJAX che invia il testo preso da un campo di un form ad un file php.
    Vi spiego il codice e poi il problema.

    codice:
    //codice javascript
    var xmlHttp = getXmlHttpObject();
    var waiting = false;
    
    function getXmlHttpObject()
    {
      var xmlHttp=null;
      try
        {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
        }
      catch (e)
        {
        // Internet Explorer
        try
          {
          xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
          }
        catch (e)
          {
          xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        }
      return xmlHttp;
    }
    
    //di seguito la funzione che... non funziona!
    function scritto(campoText) {    
    
    	if(xmlHttp && !waiting) {
    	
    		var data1= campoText;
    		xmlHttp.open("POST", 'texto.php', true);
    		xmlHttp.onreadystatechange = stateChanged;
    		xmlHttp.send(data1);
    		alert(data1);
    		waiting = true;
    	}
    
    }
    
    //e quindi la funzione stateChanged:
    
    function stateChanged() {
    	if(xmlHttp.readyState == 4) {
    		//Stato 200 = OK
    		if (xmlHttp.status == 200) {
    			var resp = xmlHttp.responseText;
    			alert(resp);	
    			
    		}
    		waiting = false;
    	}
    }
    ora il codice presente in texto.php (la pagina lato server che dovrebbe elaborare i dati:

    codice:
    <?php 
    if(!isset($_POST['campoText'])){
    $r = "Non valido";
    } else
    {
    $campoText = $_POST['campoText'];
    $r = $campoText;
    }
    echo $r;
    
    ?>
    e quindi, per ultimo, il codice html del form:

    codice:
    <form name="firmasz" method="POST" action=<?php echo $HTTP_SERVER_VARS['PHP_SELF']; ?> >
    <input type="text" id="campoText" onblur="scritto(this.value)" />
    </form>
    Come potete vedere, lo script non fa altro che passare il parametro campoText alla pagina lato server, che dovrebbe rispondere con il testo inserito nella textBox. Invece, l'errore che ricevo è sempre "Non valido", come se non venisse mai verificata la isset di PHP.

    A me sembra tutto corretto... ma siccome sto muovendo i primi passi con AJAX... quale potrebbe essere il problema?

    Grazie a tutti!

  2. #2
    Hai sbagliato la send (visto che invii in POST)

    La send corretta:
    codice:
    function scritto(campoText) {    
    	if(xmlHttp && !waiting) {
    		var data1= "campoText=" + campoText;
    		xmlHttp.open("POST", 'texto.php', true);
    		xmlHttp.setRequestHeader("content-type", "application/x-www-form-urlencoded");
    		xmlHttp.onreadystatechange = stateChanged;
    		xmlHttp.send(data1);
    		alert(data1);
    		waiting = true;
    	}
    }
    Vedi un'ottima guida http://javascript.html.it/guide/leggi/95/guida-ajax/

    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    121
    Grazie, funziona alla perfezione. :-)
    Adesso mi studio ben bene la guida!

    Grazie ancora!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.