2017-10-17 4 views
1

Hé les gars je crée un formulaire d'inscription à la newsletter et en essayant de le soumettre avec AJAX ..Php formulaire Ajax ne soumet pas

Voici ma forme:

<div id="form-content"> 
    <form method="POST" id="news-form" name="newsletter"> 
    <div class="bd-input-2 form-group"> 
     <input type="email" name="newsletter_email" placeholder="Enter your email address" required /> 
    </div>    
    <div class="form-group"> 
     <button type="submit" name="newsletter">Submit</button> 
    </div> 
    </form> 
</div> 

Et celui-ci est mon fichier JS dans la même page que la forme:

$('#news-form').submit(function(e){  
    e.preventDefault(); 
    $.ajax({ 
     url: 'newsletter-submit.php', 
     type: 'POST', 
     data: $(this).serialize() 
    }) 
    .done(function(data){ 
     $('#form-content').fadeOut('slow', function(){ 
      $('#form-content').fadeIn('slow').html(data); 
      console.log(data); 
     }); 
    }) 
    .fail(function(){ 
     alert('Ajax Submit Failed ...');  
    }); 
}); 

sur rien de la console affiche même pas une erreur juste une ligne vide.

Et mon dossier bulletin-submit.php:

<?php 
if(isset($_POST['newsletter'])){ 
    $newsletter_email = filter_var($_POST['newsletter_email'],FILTER_VALIDATE_EMAIL);  
    if(filter_var($newsletter_email, FILTER_VALIDATE_EMAIL)){ 
     $newsletter_email = filter_var($newsletter_email, FILTER_VALIDATE_EMAIL); 
     $em_check = sqlsrv_query($con, "SELECT email FROM newsletter_signups WHERE email='$newsletter_email'",array(), array("Scrollable"=>"buffered")); 
     $num_rows = sqlsrv_num_rows($em_check); 
     if($num_rows > 0){ 
      echo "<br/><p style='color: #fff;'>Email exist in our newsletter list.</p>"; 
     }else{ 
      $query = "INSERT INTO newsletter_signups (email) VALUES ('{$newsletter_email}')"; 
      $insert_newsletter_query = sqlsrv_query($con,$query); 
      echo '<br/><p style="color: green;">Thank you for sign up in our newsletter</p>'; 
     } 
    } 
} 
?> 

Mais si j'ajoute un code après balises phpHello world qui est par exemple affiché après la présentation.

Mon code php travaillait avant le fichier AJAX

+1

[Avez-vous regardé la requête/réponse AJAX dans les outils de développement du navigateur? Avez-vous inclus la bibliothèque jQuery dans le projet? Y a-t-il des erreurs signalées? Courez-vous ceci sur un serveur Web?] (Http://jayblanchard.net/basics_of_jquery_ajax.html) –

+3

Votre champ de saisie s'appelle 'newsletter_email' et dans votre php vous vérifiez' isset ($ _ POST ['newsletter' ]) ' – emed

+0

@JayBlanchard Oui je l'exécute sur le serveur Web Windows R2012 J'ai la bibliothèque de Jquery et je n'obtiens aucune erreur – Maria

Répondre

3

Votre champ de saisie est nommé newsletter_email et dans votre php vous archivez pour isset($_POST['newsletter']) qui est toujours faux.

+0

Merci !!!!! – Maria

+0

@Maria Pour éviter cela, implémentez le else, car vous obtiendrez une autre réponse vide si 'filter_var ($ newsletter_email, FILTER_VALIDATE_EMAIL)' renvoie false – emed