布尔值没有用jQuery / $ .get传递 - 为什么?

时间:2010-08-06 21:57:45

标签: javascript jquery json boolean

我的前端脚本有以下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。但由于某种原因,它不能在这里工作。

2 个答案:

答案 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';
}