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

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

DDD
DDDOriginal
2024-11-02 16:43:02178Durchsuche

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>

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>

Server -Side PHP (getcontact.php):

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

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>

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!

Stellungnahme:
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