Ciao a tutti, sto cercando di effettuare una validazione di un form che viene visualizzato dopo aver selezionato una scelta in una select:
1 - seleziono la select
2- visualizzo (in modo asincrono) la scelta effettuata insieme ad un form di registrazione
3- valido il form in modo asincrono: non mi compaiono i messaggi relativi alla validazione (questo è il mio problema)
Cerco di illustrarlo:
1- per visualizzare la scelta effettuata sulla select utilizzo la seguente funzione:
con il form responsabile della select:codice:<script type="text/javascript"> function showUser(str) { if (str=="") { document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","selezionato.php?q="+str,true); xmlhttp.send(); } </script>
fin qui tutto ok, il file "selezionato.php" mi visualizza la scelta insieme al form che dovrò validare:codice:<form id="input_event" action="?"> <select name="users" onchange="showUser(this.value)"> <option value="">Seleziona</option> <option value="scelta uno">scelta uno</option> <option value="scelta due">scelta due</option> </select> </form>
2
3 - A questo punto arriva il mio problema.codice:<script type="text/javascript"> $(document).ready(function() { $("#input_form").submit(function(){ var nome = $("#nome").val(); //chiamata ajax $.ajax({ //imposto il tipo di invio dati (GET O POST) type: "POST", //invio i dati recuperati dal form url: 'risultato.php', //Quali dati devo inviare? data: "nome="+nome, //Inizio visualizzazione errori success: function(msg) { $("div#result").html(msg); }, error: function() { alert("Chiamata fallita..."); } });return false; }); }); </script> <?php $q=$_GET["q"]; echo $q; /* visualizzo la scelta effettuata */ ?> <div id="result"></div> <form id="input_form" action="?"> Nome: <input type="text" name="nome" id="nome"/> <input type="submit" value="invia" class="button"> </form>
Vorrei validare la variabile "nome" , se cerco semplicemente di visualizzarla mediante il seguente codice del file risultato.php (richiamato dallo script):
non succede nulla! cioè, mi punta sul file seleziona.php in questo modo: seleziona.php?nome=Codice PHP:$nome = htmlspecialchars ($_POST['nome']) ;
echo $nome;
(invece non dovrei visualizzare la variabile "nome" nella barra indirizzi e tanto meno il suo contenuto!) e scompare il form (dovrebbe comparire il valore della variabile)
Prima di implementare il tutto ho testato singolarmente:
il file che gestisce la select e la sua visualizzazione e il file che valida il form, tutto funziona correttamente.
Il problema si crea quando metto insieme le due cose: select+validazione form.
C'è sicuramente qualcosa che mi sfugge, confido in un vostro aiuto.
Grazie a tutti.

Rispondi quotando