Modulo Contatti

Discussioni e problematiche su linguaggio Javascript e framework come jQuery e simili.

Moderatori: maurizio, markdesign

Regole del forum
Per scrivere del codice all'interno di ogni post, utilizzare il tag: [syntax=il_linguaggio]codice[/syntax] sostituendo "il_linguaggio" con il linguaggio del codice che dovete inserire, ad esempio: html, css, javascript, php, asp, ecc...

Modulo Contatti

Messaggioda terravulcanica » giovedì 28 luglio 2011, 23:35

Salve a tutti, sto creando un modulo contatti ma da giorni cerco di farlo funzionare e non riesco.
Il modulo contatti è composto dai seguenti campi: nome, email, oggetto del messaggio e messaggio.
Mediante JQuery Validation riesco a fare la corretta validazione degli input, però non riesco a passare i dati così validati ad una funzione ajax che non fa altro che inviare i dati ad un file .php per l'invio dell'email. Il file .php inoltre al termine dell'invio dell'email rilascia un messaggio di avvenuto invio.

Di seguito inserisco il codice jquery (Funzionante)con cui valido i campi:
Sintassi: javascript [ Scarica ] [ Nascondi ]
  1. $("#modulo").validate(
  2. {
  3. rules:
  4. {
  5. nome: "required",
  6. email:
  7. {
  8. required: true,
  9. email: true
  10. },
  11. oggetto: "required",
  12. messaggio: "required",
  13.  
  14. },
  15. messages:
  16. {
  17. nome: " Inserire un Nome valido!",
  18. email: " Inserire un indirizzo email valido!",
  19. oggetto: " Inserire un oggetto valido!",
  20. messaggio: " Inserire un messaggio valido!",
  21.  
  22. }
  23. });
  24.  


La funzione ajax da me creata e che non so come e dove inserire, dove datastr dovrebbe esssere un array con il contenuto degli input:

Sintassi: [ Scarica ] [ Nascondi ]
  1. function send(datastr){ 
  2. $.ajax({ 
  3. type: "POST", 
  4. url: "mail.php", 
  5. data: datastr, 
  6. cache: false, 
  7. success: function(html){ 
  8. $("#risposta").fadeIn("slow"); 
  9. $("#risposta").html(html); 
  10. $("#risposta").css("background-color","#e1ffc0"); 
  11. setTimeout('$("#risposta").fadeOut("slow")',3000); 
  12. }); 


Di seguito il file .php per l'invio dell'email:

Sintassi: php [ Scarica ] [ Nascondi ]
  1. <?php
  2. //Recuperiamo tutte le variabili
  3. $mail = $_POST['email'];
  4. $name = $_POST['nome'];
  5. $subject = $_POST['oggetto'];
  6. $text = $_POST['messaggio'];
  7. $ip = $_SERVER['REMOTE_ADDR'];
  8.  
  9. //Qui andrĂ  inserito il tuo indirizzo e-mail
  10. $to = "info@mioindirizzo.it";
  11.  
  12. //Creazione del mesaggio da inviare
  13. $message = "Dal Modulo Contatti del sito internet miositoweb.it, hai ricevuto una e-mail da: ".$name.", ".$mail.".";
  14. $message .= "Messaggio: ".$text."
  15.  
  16. ";
  17. $message .= "IP: ".$ip."";
  18. $headers = "From: $mail \n";
  19. $headers .= "Reply-To: $mail \n";
  20. $headers .= "MIME-Version: 1.0 \n";
  21. $headers .= "Content-Type: text/html; charset=utf-8 \n";
  22.  
  23. //Se l'e-mail viene spedita correttamente, compare un messaggio di avvenuto invio
  24. if(mail($to, $subject,$message, $headers)){
  25. echo "<p>Messaggio inviato con successo a info@mioindirizzo.it</p>";
  26. }
  27. //Altrimenti un messaggio di errore
  28. else{
  29. echo "<p>Ci sono stati degli errori nell'invio della e-mail.</p>";
  30. }
  31. ?>
  32.  


Come posso integrare il tutto... tutto questo nasce perchè dentro il sito web che sto creando ho altri plugin jquery e per farli funzionare devo trasformare le funzioni in plugin.
Comunque facendo una ricerca sono arrivato a conoscere la funzione submithandler ma non so proprio cosa inserire. come faccio a passare i dati del modulo validati e a richiamare la funzione ajax e quindi il php? Insomma Aiuto.
Grazie infinite.
terravulcanica

Avatar utente
 
Messaggi: 1
Iscritto il: giovedì 28 luglio 2011, 23:27

Torna a Javascript