Ciao, sto realizzando un form, tutto bene fino a quando ho dovuto inserire un SELECT per scelta multipla. Nella email ricevo come valore del campo "undefined".
Credo il problema sia nel file javascript... credo.
Sapreste aiutarmi?
qui lo script originale http://www.artedelweb.it/2009/11/23/...-jquery-e-php/
(ho levato un po di campi tipo email telefono ecc ecc per cercare di pulire il codice da parti ridondanti)
HTML
Codice PHP:
<form id="formail" method="post" action="">
<div id="risposta"></div>
Nome:</p>
<input type="text" id="nome" name="nome" value="" />
Tipologia di stand:</p>
<select name="tipologia">
<option value="fronte">Un fronte</option>
<option value="angolo">Ad angolo</option>
<option value="penisola">A penisola</option></select>
Messaggio:</p>
<textarea id="messaggio" name="messaggio" rows="9" cols="20"></textarea>
<input type="submit" id="invia" name="invia" value="Invia" />
</form>
PHP
Codice PHP:
//Recuperiamo tutte le variabili
$name = $_POST['name'];
$text = $_POST['text'];
$ip = $_SERVER['REMOTE_ADDR'];
//Qui andrà inserito il tuo indirizzo e-mail
$to = "xxx@xxx.net";
//Creazione del mesaggio da inviare
$message = "
Hai ricevuto una e-mail da: ".$name.".
";
$message .= "Messaggio: ".$text."
";
$message .= "Tipologia: ".$tipologia."
";
//Se l'e-mail viene spedita correttamente, compare un messaggio di avvenuto invio
if(mail($to, $subject,$message, $headers)){
echo "
Messaggio inviato con successo</p>";
}
//Altrimenti un messaggio di errore
else{
echo "
Ci sono stati degli errori nell'invio della e-mail.</p>";
}
JAVASCRIPT
Codice PHP:
$(document).ready(function(){
$("#invia").click(function(){
//Recuperiamo tutte le variabili
var valid = '';
var isr = ' è richiesto.</p>';
var name = $("#nome").val();
var tipologia = $("#tipologia").val();
var text = $("#messaggio").val();
//Eseguiamo una serie di controlli
if (name.length<1) {
valid += '
Un nome valido'+isr;
}
if (text.length<1) {
valid += '
Un messaggio valido'+isr;
}
//Se i controlli non vengono superati, appare il messaggio di errore.
if (valid!='') {
$("#risposta").fadeIn("slow");
$("#risposta").html("
[b]Errore:[/b]</p>"+valid);
$("#risposta").css("background-color","#ffc0c0");
}
//Se i controlli vengono superati, compare un messaggio di invio in corso
else {
var datastr ='name=' + name + '&tipologia=' + tipologia + '&text=' + text;
$("#risposta").css("display", "block");
$("#risposta").css("background-color","#FFFFA0");
$("#risposta").html("
Invio del messaggio in corso..</p>");
$("#risposta").fadeIn("slow");
setTimeout("send('"+datastr+"')",2000);
}
return false;
});
});
//Creazione della funzione di invio. Si baserà sul nostro file php "mail.php".
function send(datastr){
$.ajax({
type: "POST",
url: "mail.php",
data: datastr,
cache: false,
success: function(html){
$("#risposta").fadeIn("slow");
$("#risposta").html(html);
$("#risposta").css("background-color","#e1ffc0");
setTimeout('$("#risposta").fadeOut("slow")',2000);
}
});
}