Ciao a tutti! Mi servirebbe una mano con un contact form che ho realizzato..
Il form è così strutturato:
HTML
codice:
<div class="contact-formMOD"> <form method="post" id="modulo">
<div id="rispostaMOD">
</div>
<p class="formacontattoMOD">Il tuo Nome:</p>
<input type="text" name="nomeMOD" id="nomeMOD" value="" />
<p class="formacontattoMOD">La tua E-mail:</p>
<input type="email" name="email" id="emailMOD" value="" />
<p class="formacontattoMOD">Telefono:</p>
<input type="text" name="telefono" id="telefonoMOD" value="" />
<p class="formacontattoMOD">Fai la tua scelta:</p>
<fieldset>
<select name="scelte">
<option value="Choice 1" selected="selected">Choice 1</option>
<option value="Choice 2">Choice 2</option>
<option value="Altro">Altro (Specificare)</option>
</select>
</fieldset><br />
<p class="formacontattoMOD">Scegli il pacchetto:</p>
<fieldset>
<select name="grandezza">
<option value="Small" selected="selected">Small</option>
<option value="Large">Large</option>
<option value="Extralarge"></option>
</select>
</fieldset><br />
<p class="formacontattoMOD">Oggetto:</p>
<input type="text" name="oggetto" id="oggettoMOD" value="" />
<p class="formacontattoMOD">Scrivi qui il Testo:</p>
<textarea name="messaggio" id="messaggioMOD"></textarea>
<input type="submit" name="invia" id="inviare" value="Invia" />
</form>
</div>
Che "risponde" a questo JS:
codice:
$(function(){ $("#inviare").click(function(){
//Recupero tutte le variabili
var valid = '',
isr = ' è richiesto.</p>',
name = $("#nomeMOD").val(),
mail = $("#emailMOD").val(),
subject = $("#oggettoMOD").val(),
telefono = $("#telefonoMOD").val(),
messaggio = $("#messaggioMOD").val();
// Controllo variabili
if (name.length<1){ valid += '<p>Un nome valido'+isr;}
if (!mail.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)){ valid += '<p>Un indirizzo e-mail valido'+isr; }
// non vengono superati, appare il messaggio di errore.
if (valid!=''){
$("#rispostaMOD").fadeIn("slow");
$("#rispostaMOD").html("<p><b>Errore:</b></p>"+valid);
$("#rispostaMOD").css("background-color","#faffbd");
}
//Se i controlli vengono superati, compare messaggio di invio in corso
else {
var datastr ='name=' + name + '&mail=' + mail + '&subject=' + subject + '&telefono=' + telefono + '&messaggio=' + encodeURIComponent(messaggio);
$("#rispostaMOD").css("display", "block");
$("#rispostaMOD").css("background-color","#faffbd");
$("#rispostaMOD").html("<p>Invio del messaggio in corso..</p>");
$("#rispostaMOD").fadeIn("slow");
setTimeout(send(datastr),2000);
}
return false;
});
//Funzione di invio affidata a "mail.php".
function send(datastr){
$.ajax({
type: "POST",
url: "js/modulo.php",
data: datastr,
cache: false,
success: function(html){
$("#rispostaMOD").fadeIn("slow");
$("#rispostaMOD").html(html);
$("#rispostaMOD").css("background-color","#e1ffc0");
setTimeout('$("#rispostaMOD").fadeOut("slow")',2000);
console.log("Mandato "+datastr);
}
})};
});
legato a questo PHP:
codice:
<?php//Recuperiamo tutte le variabili
$mail = $_POST['mail'];
$name = $_POST['name'];
$subject = $_POST['subject'];
$telefono = $_POST['telefono'];
$text = $_POST['messaggio'];
$ip = $_SERVER['REMOTE_ADDR'];
//Qui andrà inserito il tuo indirizzo e-mail
$to = "mail@gmail.com";
//Creazione del mesaggio da inviare
$message = "Hai ricevuto una e-mail da: ".$name.", ".$mail.", ".$telefono.".<br />";
$message .= "Messaggio: <br />".$text."<br /><br />";
$message .= "IP: ".$ip."<br />";
$headers = "From: $mail \n";
$headers .= "Reply-To: $mail \n";
$headers .= "MIME-Version: 1.0 \n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1 \n";
//Se l'e-mail viene spedita correttamente, compare un messaggio di avvenuto invio
if(mail($to, $subject,$message, $headers)){
echo "<p>Messaggio inviato con successo</p>";
}
//Altrimenti un messaggio di errore
else{
echo "<p>Ci sono stati degli errori nell'invio della e-mail.</p>";
}
?>
Volevo sapere perché funziona tutto tranne i menu a tendina? per di più vorrei un consiglio su come impostare il menu a tendina "grandezza" propedeutico all'invio del form. 
Grazie a tutti..