Heim > Backend-Entwicklung > PHP-Tutorial > Warum erreichen meine jQuery-serialisierten Formulardaten den PHP-Server nicht?

Warum erreichen meine jQuery-serialisierten Formulardaten den PHP-Server nicht?

DDD
Freigeben: 2024-11-02 16:43:02
Original
295 Leute haben es durchsucht

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

Serialisierung und Übermittlung eines Formulars mit jQuery und PHP

Problem: Trotz der Serialisierung von Formulardaten mit jQuery sind die Daten Erreicht den Server nicht.

HTML-Formular:

<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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Server -Side PHP (getcontact.php):

<code class="php">$nume = $_POST["nume"];
$email = $_POST["email"];
$telefon = $_POST["telefon"];
$comentarii = $_POST["comentarii"];</code>
Nach dem Login kopieren

Problemlösung:

Das Problem entsteht durch die Verwendung der Transportmethodenoption in $.post( ) (in jQuery 3.0 veraltet). Verwenden Sie stattdessen $.ajax() mit den folgenden Einstellungen:

<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>
Nach dem Login kopieren

In diesem aktualisierten Code:

  • $.preventDefault() verhindert, dass der Browser das Formular sendet.
  • Transport wird weggelassen, sodass jQuery die beste Methode auswählen kann.
  • dataType ist auf „json“ gesetzt, um die Serverantwort als JSON zu interpretieren.
  • Erfolgs- und Fehlerrückrufe behandeln den Server Antworten bzw. Fehler.

Das obige ist der detaillierte Inhalt vonWarum erreichen meine jQuery-serialisierten Formulardaten den PHP-Server nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage