Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Contact Form

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2015
    Messaggi
    1

    Contact Form

    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 = ' &egrave; 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..

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Perché non recuperi in datastr il valore della select impostare come?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.