為什麼我的 jQuery 序列化表單資料無法到達 PHP 伺服器?

DDD
發布: 2024-11-02 16:43:02
原創
165 人瀏覽過

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

使用jQuery 和PHP 序列化並提交表單

問題:儘管使用jQuery 序列化表資料,但數據未到達伺服器。

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>
登入後複製

<code class="php">$nume = $_POST["nume"];
$email = $_POST["email"];
$telefon = $_POST["telefon"];
$comentarii = $_POST["comentarii"];</code>
登入後複製

問題解決方案:
<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>
登入後複製

問題是由於使用$.post() 中的傳輸方法選項(在jQuery 3.0 中已棄用)而引起的。相反,請使用帶有以下設定的$.ajax():
  • 在此更新的程式碼中:
  • $.preventDefault() 阻止瀏覽器提交表單。
  • 傳輸被省略,允許 jQuery 選擇最佳方法。
dataType 設定為「json」 將伺服器回應解釋為 JSON。 成功和錯誤回呼分別處理伺服器回應和錯誤。

以上是為什麼我的 jQuery 序列化表單資料無法到達 PHP 伺服器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!