Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah data borang bersiri jQuery saya tidak sampai ke pelayan PHP?

Mengapakah data borang bersiri jQuery saya tidak sampai ke pelayan PHP?

DDD
DDDasal
2024-11-02 16:43:02166semak imbas

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

Mensiri dan Menghantar Borang dengan jQuery dan PHP

Isu: Walaupun mensiri data borang menggunakan jQuery, data adalah tidak sampai ke pelayan.

Borang 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>

Pelayan -Side PHP (getcontact.php):

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

Penyelesaian Masalah:

Isu timbul daripada menggunakan pilihan kaedah pengangkutan dalam $.post( ) (tidak digunakan dalam jQuery 3.0). Sebaliknya, gunakan $.ajax() dengan tetapan berikut:

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

Dalam kod yang dikemas kini ini:

  • $.preventDefault() menghentikan penyemak imbas daripada menyerahkan borang.
  • pengangkutan ditinggalkan, membenarkan jQuery memilih kaedah terbaik.
  • dataType ditetapkan kepada "json" untuk mentafsir respons pelayan sebagai JSON.
  • kejayaan dan panggilan balik ralat mengendalikan pelayan jawapan dan ralat, masing-masing.

Atas ialah kandungan terperinci Mengapakah data borang bersiri jQuery saya tidak sampai ke pelayan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn