Javascript JQuery验证未将数据发布到后端
我有一些奇怪的事情,我正在努力解决。我有一个简单的submitHandle,它将一位数据传递给我的PHP文件Javascript JQuery验证未将数据发布到后端,javascript,php,jquery,jquery-validate,Javascript,Php,Jquery,Jquery Validate,我有一些奇怪的事情,我正在努力解决。我有一个简单的submitHandle,它将一位数据传递给我的PHP文件 submitHandler: function (form) { $.ajax({ type: "POST", url: "form-process.php", data: { 'customer': $("input[name='customer']:checked").val() }
submitHandler: function (form) {
$.ajax({
type: "POST",
url: "form-process.php",
data: {
'customer': $("input[name='customer']:checked").val()
}
}).done(function (response) {
console.log(response)
}).fail(function (jqXHR, textStatus) {
console.log(textStatus)
});
return false;
}
如果我输出$(“input[name='customer']:checked”).val()
我得到的是或否的预期值。现在在我的PHP文件中,我只需执行以下操作
echo json_encode($_POST["customer"]);
这似乎产生了错误
未定义索引:客户
如果我只是选中$\u POST
,它将返回一个空数组
我是不是遗漏了什么?是否有原因导致此数据无法发送到后端?您应该使用$(“输入[name='customer']:选中”)?true:false
因为如果未选中输入$(“input[name='customer']:checked”)
将返回null
,然后您将得到不正确的null.val()
data: {
customer: $("input[name='customer']:checked") ? true : false
}
尝试以下方法:
$.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)
});
检查devtools中的网络选项卡,查看post数据是否与请求一起发送。您能告诉我们使用了哪个版本的Jquery吗?当然,Jquery v2.1.4和Jquery验证插件-v1.17.0。因此,在检查PHP文件中的$\u post
数组的值之前,如果我是您,这个ajax请求对于语法1.4来说太旧了,我将在web浏览器的JavaScript开发人员控制台中测试$(“input[name='customer']:checked”).val()的值。例如,console.log($($input[name='customer']:checked”).val())
。在将JS中的值发送到PHP文件之前,请确保返回的值正确。你的Ajax post语法看起来不错。我实际上刚刚发现了问题所在。我用XAMPP在本地运行这个程序,这里一定出了什么问题。我一上网就得到了数据。虽然不确定为什么在本地运行它会导致这个问题,但如果您调用一些外部链接,则需要查看它是否在本地取决于您的内部网络代理vpn或防火墙路由器。但不确定您是否需要分析日志php、apaches来找到原因。那么,var customerVal=$(“input[name='customer']:checked”)如何?真:假代码>然后:数据:{'customer':customerVal}
。我认为在这里用bool更好。我根据这个问题考虑了是和否。。。但答案是肯定的,布尔值绝对会更好