Sérialisation et soumission d'un formulaire avec jQuery et PHP
Problème : Malgré la sérialisation des données du formulaire à l'aide de jQuery, les données sont n'atteint pas le serveur.
Formulaire HTML :
<code class="html"><form id="contactForm" name="contactForm" method="post"> <input type="text" name="nume" size="40" placeholder="Nume"> <input type="text" name="telefon" size="40" placeholder="Telefon"> <input type="text" name="email" size="40" placeholder="Email"> <textarea name="comentarii" cols="36" rows="5" placeholder="Message"></textarea> <input id="submitBtn" type="submit" name="submit" value="Trimite"> </form></code>
JavaScript :
<code class="javascript">$("#contactForm").submit(function(e) { e.preventDefault(); // Prevent browser submission $.post("getcontact.php", $("#contactForm").serialize()) .done(function(data) { // Process server response }); });</code>
Serveur -Côté PHP (getcontact.php) :
<code class="php">$nume = $_POST["nume"]; $email = $_POST["email"]; $telefon = $_POST["telefon"]; $comentarii = $_POST["comentarii"];</code>
Résolution du problème :
Le problème provient de l'utilisation de l'option de méthode de transport dans $.post( ) (obsolète dans jQuery 3.0). Utilisez plutôt $.ajax() avec les paramètres suivants :
<code class="javascript">$.ajax({ type: "POST", url: "getcontact.php", data: $("#contactForm").serialize(), dataType: "json", success: function(data) { // Process server response }, error: function() { // Handle errors } });</code>
Dans ce code mis à jour :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!