2017-10-11 52 views
1

我有一些奇怪的事情,我試圖找出。我有一個簡單submitHandle是通過一個數據位到我的PHP文件jQuery驗證未發佈數據到後端

如果我輸出$("input[name='customer']:checked").val()我得到的是預期值或沒有。現在在我的PHP文件,我只是在做

echo json_encode($_POST["customer"]); 

這似乎產生錯誤

未定義指數:客戶

如果我只是檢查$_POST它返回一個空數組。

我在這裏錯過了什麼嗎?這個數據沒有到達後端的原因是什麼?

+0

檢查網絡選項卡在devtools中查看發佈的數據是否與請求一起發送。 – mega6382

+0

你可以告訴我們至極版本Jquery使用?? – 2017-10-11 18:41:27

+0

當然,jQuery的v2.1.4和jQuery驗證插件 - v1.17.0 –

回答

1

您應該使用$("input[name='customer']:checked") ? true : false,因爲如果沒有選中輸入$("input[name='customer']:checked")將返回null,然後你將有null.val()這是不正確

data: { 
     customer: $("input[name='customer']:checked") ? true : false 
    } 
+0

怎麼樣,'var customerVal = $(「input [name ='customer']:checked」)? true:false;'然後:'data:{'customer':customerVal}'。我認爲布爾在這裏更好。 – DrewT

+0

我認爲是的,沒有根據的問題...但肯定的布爾將是絕對更好,更新的答案 –

1

試試這個方法:

$.ajax({ 
    method: "POST", 
    url: "form-process.php", 
    data: { customer: $("input[name='customer']:checked").val() } 
}).done(function(response) { 
console.log("Data Saved: " + response); 
}).error(function(error){ 
    console.log(error) 
}); 
+0

我其實只是發現了什麼問題了。我在XAMPP本地運行這個東西肯定是錯的。只要我把它放到網上,我就得到了數據。不知道爲什麼在本地運行它導致這個問題,但需要看看它 –

+1

本地取決於你內部網絡代理VPN或防火牆路由器可以cos問題,如果你打電話給一些外部鏈接。但不知道你需要分析你的日誌PHP,找到原因。 – 2017-10-11 19:09:29