2013-08-20 9 views
-2

J'ai ce script de formulaire de contact PHP (comme indiqué ci-dessous) que j'ai utilisé avant donc je sais fonctionne, MAIS, en raison de cela, j'ai caché le formulaire html à l'intérieur d'un div jQuery : (<div class="toggle hidemail" id="drop-button" href=""> Email us here </div> <div class="hidden hiddenform">) qui bascule vers le haut et vers le bas, je ne peux pas envoyer le formulaire, le formulaire est censé disparaître puis donner à l'utilisateur un message de confirmation (comme indiqué dans le script), mais il ne faire quoi que ce soit, je ne suppose pas que quelqu'un puisse savoir ce qui ne va pas ici, donc je peux faire fonctionner ce formulaire à nouveau?Formulaire de contact Script ne pas envoyer le formulaire

<?php 

    $to = '[email protected]'; 
    $subject = 'Company Name'; 

    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 

    $body = <<<EMAIL 
     Hello my name is $name. 
     $message 
     From $name 
     my email address is $email 

    EMAIL; 

    if($name == '' || $email == '' || $message == "") { 
     echo "<h5>Sorry, I think you missed bit....</h5>"; 
     $error = true; 
    } else { 
     $error = false; 
     mail("[email protected]", $name, $email, $message); 
     echo "<h5>Thank you for getting in touch. I'll get back to you ASAP.</h5>"; 
    } 

    if($error == true): 
?> 

<article id="contact-form">    
    <article id="load_area"> 
     <form id="my-form">      
      <input type="text" name="name" placeholder="Name" /> 
      <input type="text" name="email" placeholder="Email" /> 
      <textarea name="message" placeholder="Message" /></textarea> 
      <input type="button" class="submit_button" value="Send" name="send_button" />       
     </form>  
    </article>        
</article> 
<?php 
    endif; 
?> 

Voici le code HTML:

<div class="toggle hidemail" id="drop-button" href=""> Email us here </div> 
    <div class="hidden hiddenform"> 
     <article id="contact-form"> 
      <article id="load_area"> 
       <form id="my-form">   
        <input type="text" name="name" placeholder="Name" /> 
        <input type="text" name="email" placeholder="Email" /> 
        <textarea name="message" placeholder="Message" /></textarea> 
        <input type="button" class="submit_button" value="Send" name="send_button" />     
       </form> 
      </article>   
     </article> 
    </div> 

$(document).ready(function() { 
    $(".submit_button").live("click", function() { 
     $("#load_area").fadeOut('slow', function() { 
      $("#load_area").fadeIn(); 
      $.post("process.php", $("#my-form").serialize(), function(data) { 
       $("#load_area").html(data); 
      }) 
     }); 
    }) 
}) 
+0

Vous avez pas de bouton d'envoi. Avez-vous javascript surveiller le send_button? – Anigel

+0

Cela peut être un peu un conseil stupide, mais assurez-vous d'entrer une adresse correctement formatée dans le champ e-mail. Certains développeurs entrent simplement une valeur asdafasd aléatoire. Ensuite, le serveur SMTP peut le rejeter. –

+0

Oui, lorsque l'utilisateur appuie sur la dernière entrée (.submit_button), le formulaire est envoyé. Merci – spamy

Répondre

2

Essayez d'utiliser

$(".submit_button").on("click", function(){ 

au lieu de '$(".submit_button").live("click", function(){

De jQuery Docs:

A partir de jQuery 1.7, le .live() est dépréciée

aussi essayer d'utiliser

$('#my-form').submit(function() { 
    alert('Handler for .submit() called.'); 
    return false; 
}); 

et définir une action dans votre formulaire HTML comme ceci:

<form id="my-form" action="process.php"> 
+0

Merci beaucoup ça a fonctionné parfaitement! JE VOUS REMERCIE!!! – spamy

+0

Pourquoi avez-vous refusé la réponse? Cela ne fonctionne pas pour vous? –

Questions connexes