我的前端脚本有以下jQuery代码:
$.get("/backend/post.php", {
title: title,
message: post,
stick: sticky
}, function (output) {
alert("Call Back");
}
}, "json");
stick是一个布尔值,另外两个是字符串。我已经证实他们确实已经确定了。现在在后端页面上,使用$ _GET,title和,消息并传递,但$ _GET ['stick']返回空,PHP函数gettype()告诉我它是NULL。
请求其中一条评论:
粘贴来自表单,它是一个复选框,我只需使用以下代码选择它:
var sticky = $("input[name=sticky]").attr('checked');
当我使用alert()输出sticky值时,它将返回true / false,具体取决于所选内容。
为什么没有传递这个布尔值? JSON站点告诉我你可以在其中使用布尔值true / false。但由于某种原因,它不能在这里工作。
答案 0 :(得分:4)
我不能完全确定,因为我自己没有测试过,但我认为这与GET请求如何作为字符串传输有关。尝试这样的事情:
var sticky = $("input[name=sticky]").attr('checked')?"true":"false";
$.get("/backend/post.php", {
title: title,
message: post,
stick: sticky
}, function (output) {
alert("Call Back");
}
}, "json");
这完全有可能不起作用,但试一试。
答案 1 :(得分:0)
如果表单中的输入没有值,则不会将其作为参数发送。因此,缺少$_GET['stick']
等同于查询字符串参数stick=false
。所以如果你必须有一个参数:
var sticky = 'true';
if($("input[name=sticky]").not(':checked')) {
sticky = 'false';
}