Maison > développement back-end > tutoriel php > Pourquoi les données de mon formulaire sérialisé jQuery n'atteignent-elles pas le serveur PHP ?

Pourquoi les données de mon formulaire sérialisé jQuery n'atteignent-elles pas le serveur PHP ?

DDD
Libérer: 2024-11-02 16:43:02
original
283 Les gens l'ont consulté

Why is my jQuery serialized form data not reaching the PHP server?

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>
Copier après la connexion

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>
Copier après la connexion

Serveur -Côté PHP (getcontact.php) :

<code class="php">$nume = $_POST["nume"];
$email = $_POST["email"];
$telefon = $_POST["telefon"];
$comentarii = $_POST["comentarii"];</code>
Copier après la connexion

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>
Copier après la connexion

Dans ce code mis à jour :

  • $.preventDefault() empêche le navigateur de soumettre le formulaire.
  • le transport est omis, permettant à jQuery de choisir la meilleure méthode.
  • dataType est défini sur "json" pour interpréter la réponse du serveur comme JSON.
  • les rappels de réussite et d'erreur gèrent le serveur réponses et erreurs, respectivement.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal