Problema nell'invio dei dati di un form ad uno script AJAX

ducadimantova

Nuovo Utente
30 Ago 2012
31
0
6
Ciao

sono a sottoporvi un banale problema nell'invio, in modalità post, dei dati di un form ad un file JS, che tramite AJAX li invia ad un file PHP per inserirli nel database.

Il mio problema è che non nel momento in cui clicco sul bottone "inserisci" del mio form non ottengo la risposta che mi aspetto, e cioè per adesso la sola verifica dei dati inviati al file php.

Di seguito il contenuto del file "insertarea.js"

Codice:
function inserisci()

{

	
	if (window.XMLHttpRequest)
	  {// code for IE7+, Firefox, Chrome, Opera, Safari
		oXHR=new XMLHttpRequest();
	  }
	else
	  {// code for IE6, IE5
		oXHR=new ActiveXObject("Microsoft.XMLHTTP");
	  }
	
	oXHR.open("POST","engines/engine_inserimento_utenti.php",true);
	oXHR.setRequestHeader("Content-type","application/x-www-form-urlencoded");		
			  
	oXHR.onreadystatechange = function (){                    
		          if(oXHR.readyState == 4){                       
		              if (oXHR.status == 200) {                               
		                  document.getElementById("risposta").innerHTML=oXHR.responseText;
		              }
		          }
		      };
		      
		  var stringa = "nome=" + encodeURIcomponent(document.modulo.nomee.value)  + "&cognome=" 
		  + encodeURIComponent(document.modulo.cognome.value) + "&email=" 
		  + encodeURIComponent(document.modulo.email.value) + "&password=" 
		  + encodeURIComponent(document.modulo.password.value) + "&password2=" 
		  + encodeURIComponent(document.modulo.password2.value)+ "";

			oXHR.send(stringa);

}

Questo riportato sotto è il form (che come potete notare viene stampato da una funzione PHP):

PHP:
echo "
    			
    			
    			<form class='form_admin' method='post' name='modulo'>
    			    			
    			<p class='testo_admin'>Inserisci il nuovo nome utente:</p>
    			
    			<input type='text' name='nome' class='input_admin' />
    			
    			<p class='testo_admin'>Inserisci il cognome del nuovo utente:</p>
    			
    			<input type='text' name='cognome' class='input_admin' />    			
    			
    			<p class='testo_admin'>Inserisci un indirizzo email:</p>
    			
    			<input type='text' name='email' class='input_admin' />
    			
    			<p class='testo_admin'>Inserisci una password per il nuovo utente:</p>
    			
    			<input type='password' name='password' class='input_admin' />
    			
    			<p class='testo_admin'>Ripeti la password:</p>
    			
    			<input type='password' name='password2' class='input_admin'/>
    			
    			<input type='button' value='Inserisci' onClick=\"inserisci()\" class='bottone_admin'/>
    			
    			</form>
    			
    			<div id='risposta'></div>    			
    			
    			";

Il file "engine_inserimento_utenti.php" per ora si limita a stampare quanto riceve nel div con id "risposta":

PHP:
echo $_POST["nome"].$_POST["cognome"].$_POST["email"].$_POST["password"].$_POST["password2"];



Chiedo gentilmente a qualche anima pia un aiuto per risolvere il problema.

Grazie mille!
 
Ultima modifica di un moderatore:

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Prima di tutto non vedo perché stampi il form con PHP quando potresti farlo usando HTML. Inoltre ti consiglio di usare jQuery, che rende il tutto molto più semplice ed elegante:
HTML:
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Form AJAX</title>
        <meta charset="utf-8" />

        <script src="http://code.jquery.com/jquery-latest.js"></script>
        <script>
        $(function() {
            $("#submit").click(function() {
                $.post("engine_inserimento_utenti.php", {
                    nome:      $("#nome").val(),
                    cognome:   $("#cognome").val(),
                    email:     $("#email").val(),
                    password:  $("#password").val(),
                    password2: $("#password2").val()
                }, function(data) {
                    $("#risposta").html(data);
                });
            });
        });
        </script>
    </head>

    <body>
        <form class="form_admin" method="post">
            <p class="testo_admin">Inserisci il nuovo nome utente:</p>
            <input type="text" id="nome" class="input_admin" />

            <p class="testo_admin">Inserisci il cognome del nuovo utente:</p>
            <input type="text" id="cognome" class="input_admin" />

            <p class="testo_admin">Inserisci un indirizzo email:</p>
            <input type="text" id="email" class="input_admin" />

            <p class="testo_admin">Inserisci una password per il nuovo utente:</p>
            <input type="password" id="password" class="input_admin" />

            <p class="testo_admin">Ripeti la password:</p>
            <input type="password" id="password2" class="input_admin" />

            <input type="button" value="Inserisci" id="submit" class="bottone_admin" />
        </form>

        <div id="risposta"></div>
    </body>
</html>
Infine, per le etichette dei campi si usa il tag label, non p.
 
Ultima modifica:

ducadimantova

Nuovo Utente
30 Ago 2012
31
0
6
Grazie mille

Grazie mille per la risposta!

Stampo il form in php perchè il mio è un sito dimamico che visualizza un form diverso a seconda delle necessità dell'utente: quello che ho postato è solo una parte di un file più ampio.

Con jquery è sicuramente meglio, tuttavia, dopo essermi abbondantemente scervellato sul problema sarei ancora interessato a capire perchè il file js non funziona :(!!
 

ducadimantova

Nuovo Utente
30 Ago 2012
31
0
6
Lo script non sembra funzionare

Ciao Alessandro1997

Lo script che mi hai passato non mi funzia.


Sei sicuro di non aver tralasciato qualcosa? Tipo $(document).ready(...., i vari parametri nella chiamata ajax quali type: "POST"...ecc?
Il tag <script> poi non dovrebbe riportare "type="text/javascript"?

Scusa ma sono abbastanza a digiuno di javascript...

Grazie!
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Avevo scritto $.ajax invece di $.post, quindi era necessario specificare anche il metodo della chiamata. Ho modificato il post originale, prova ora.

L'attributo type del tag script è di default text/javascript in HTML5, e $() equivale a $(document).ready().
 

ducadimantova

Nuovo Utente
30 Ago 2012
31
0
6
Grazie

Confermo: adesso funziona

I miei complimenti :fonzie: (anche per la pazienza)

Grazie mille alessandro1997
 
Discussioni simili
Autore Titolo Forum Risposte Data
C [Javascript] problema nell'utilizzo di un array Javascript 2
1 Problema riscontrato nell'esecuzione da programma istallato Programmazione 0
S Problema nell'eliminare un'immagine PHP 2
Emix Problema nell'integrare uno script ad un altro esisnte... Ajax 2
Dexter_90 [AIUTO!] Problema Inserimento Menu Fireworks nell'Header WordPress 11
C Problema nell'upload di un file PHP 4
Y problema nell'upload di un'immagine PHP 7
catellostefano Problema nell'esportazione di wordpress WordPress 10
I Sto progettando nuovi siti utilizzando bootstrap e devo dire funziona bene, l'unico problema e la maschera -moz- HTML e CSS 0
K Problema form update PHP 2
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
S Problema nel ciclare un json Javascript 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
K Problema Inner join PHP 1
F firefox problema http Linux e Software 0
N Problema con position absolute e overflow HTML e CSS 4
E Problema jquery Success jQuery 2
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
E problema selezione sfumata Photoshop 2
K [PHP] Problema con variabili concatenate. PHP 1
A Problema filtro fluidifica Photoshop Photoshop 1
H Problema Bordi Scontorno Photoshop 1
O problema con query PHP 4
R Problema installazione Realtek WiFi USB rtl8821 Reti LAN e Wireless 0
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
Y Problema percorso file in rete PHP 1
N Problema SEO "L'URL non si trova su Google" SEO e Posizionamento 4
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
P Problema acquisizione clienti Webdesign e Grafica 1
F NetBeans problema creazione progetto Java Windows e Software 0
M Problema con Try Catch PHP 0
C problema seo + cerco esperto SEO e Posizionamento 11
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
A Problema, non so, di scale() o transform, oppure altro? HTML e CSS 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
R problema con else PHP 0
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
I PROBLEMA: Sostituzione sito XAMPP E-Commerce 0
T problema data 30/11/-1 PHP 0
L Problema RAM con Tomcat 8 Apache 0

Discussioni simili