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

Mengapakah data borang jQuery saya tidak sampai ke pelayan PHP?

Patricia Arquette
Patricia Arquetteasal
2024-10-31 07:44:30381semak imbas

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

Mensiri dan Menghantar Borang dengan jQuery dan PHP: Penyelesaian Masalah Penghantaran Data

Apabila menggunakan jQuery untuk menyiri dan menyerahkan data borang, faktor tertentu boleh membawa kepada data terlepas di hujung pelayan. Mari kita terokai senario dunia sebenar dan menganalisis isu yang berpotensi:

Penerangan Masalah:

Percubaan untuk menghantar data borang menggunakan jQuery gagal, dengan data tidak mencapai pelayan. Borang HTML tersusun dengan baik, dan JavaScript mengendalikan penyiaran dan penyerahan borang. Walau bagaimanapun, PHP sebelah pelayan gagal mendapatkan sebarang data.

JavaScript (jQuery):

<code class="javascript">$("#contactForm").submit(function() {
    $.post("getcontact.php", $("#contactForm").serialize())
    .done(function(data) {
        // ...
    });
    return false;
});</code>

Kod Bahagian Pelayan PHP:

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

Analisis:

  • Pengesahan Siri: Pastikan siri jQuery mengembalikan rentetan data borang yang dikodkan dengan betul, mis. , "nume=name&email=email".
  • Pengendalian Permintaan PHP: Sahkan jika kod sebelah pelayan menggunakan kaedah permintaan yang betul. Ia sepatutnya $_POST atau $_REQUEST untuk menerima data daripada permintaan POST.
  • Panggilan Merentas Domain: Sahkan bahawa skrip tidak dipanggil dari domain lain. Permintaan merentas domain mesti dikendalikan secara eksplisit dalam kod pelayan.
  • Konfigurasi Pelayan: Semak sama ada pelayan mempunyai sebarang tetapan atau sekatan khusus yang menghalang penghantaran data. Pastikan "allow_url_fopen" dan "allow_url_include" PHP didayakan.

Penyelesaian:

Untuk menangani isu ini, pertimbangkan perkara berikut:

JavaScript:

Gunakan fungsi jQuery $.ajax untuk fleksibiliti dan pengendalian ralat yang lebih baik:

<code class="javascript">var datastring = $("#contactForm").serialize();
$.ajax({
    type: "POST",
    url: "getcontact.php",
    data: datastring,
    success: function(data) {
        // Handle successful response here
    },
    error: function() {
        // Handle any errors during the request
    }
});</code>

PHP:

Pastikan kod sebelah pelayan menggunakan kaedah permintaan yang betul:

<code class="php">$nume = $_POST["nume"]; // assuming data is submitted via POST method
$email = $_POST["email"];
$telefon = $_POST["telefon"];
$comentarii = $_POST["comentarii"];</code>

Selain itu, dayakan sebarang tetapan pelayan yang diperlukan untuk permintaan merentas domain jika berkenaan.

Atas ialah kandungan terperinci Mengapakah data borang 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