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:
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>
con il form responsabile della select:
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>
fin qui tutto ok, il file "selezionato.php" mi visualizza la scelta insieme al form che dovrò validare:
2
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>
3 - A questo punto arriva il mio problema.
Vorrei validare la variabile "nome" , se cerco semplicemente di visualizzarla mediante il seguente codice del file risultato.php (richiamato dallo script):
Codice PHP:
$nome = htmlspecialchars ($_POST['nome']) ;
echo $nome;
non succede nulla! cioè, mi punta sul file seleziona.php in questo modo: seleziona.php?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.