Php 返回错误值的json_编码布尔值
我正在编写jquery登录。如果php登录脚本(checklogin.php)回显“true”,那么我的jquery页面应该会发出警报。当我运行login.php(不使用jquery)时,它会将请求发送到checklogin.php,该请求回显“true”。但是,如果我使用jquery登录脚本将登录信息发送到checklogin.php,我跟踪的警报会显示“false” 使用Php 返回错误值的json_编码布尔值,php,jquery,json,login,Php,Jquery,Json,Login,我正在编写jquery登录。如果php登录脚本(checklogin.php)回显“true”,那么我的jquery页面应该会发出警报。当我运行login.php(不使用jquery)时,它会将请求发送到checklogin.php,该请求回显“true”。但是,如果我使用jquery登录脚本将登录信息发送到checklogin.php,我跟踪的警报会显示“false” 使用json\u encode,将返回布尔值null $('#login').click(function(e){
json\u encode
,将返回布尔值null
$('#login').click(function(e){
$.getJSON("http://www.hedonsoft.com/game/login.php",{username: $("#username").val(), password: $("#password").val()},function(data){
if(data.boolean == "true"){
alert("true");
//$('#logindiv').slideUp();
//$('#gamediv').show();
//$('#registerdiv').hide();
//$('#gameheader').html(data['username']);
}else{ alert(data);
}
}); });
使用
true
,而不是'true'
<代码>'true'是一个字符串,您需要一个布尔值:
$json = array('boolean' => true, 'jsonUser' => $myusername);
此外,切勿写入==true
if(data==true) {
不要
echo-true
,echo-json\u-encode($json)
“永不写入==true”->为什么?@Mahn:这只会导致代码错误if(data==true)
通常等同于if(data)
。如果是等效的,==true
是多余的,应该去掉。如果它不是等价的,那么您的代码就有一个严重的问题——这里就是这样。如果你真的需要检查true
值,那么最多使用==true
而不是别的。嗯,可能只有我一个人,但我很难想象在什么情况下如果(数据==true)
与如果(数据)
不相等,你能举个例子吗?只是好奇,没有效果。警告(“假”);还是在开火。@Mahn:嗯,JavaScript<代码>'true'!=true但是'true'
是真实的。json_encode是在某处实际使用的,还是只是在收集回音“true”;作为ajax响应?请参见我的编辑。这是我最初尝试的,但无论我做了什么,它总是返回null,所以我想尝试一个简单的字符串或布尔值检查会更容易,一旦我成功了,我就会再试一次。@RapsFan1981:请参阅更新的答案。
$('#login').click(function(e){
$.getJSON("http://www.hedonsoft.com/game/login.php",{username: $("#username").val(), password: $("#password").val()},function(data){
if(data.boolean == "true"){
alert("true");
//$('#logindiv').slideUp();
//$('#gamediv').show();
//$('#registerdiv').hide();
//$('#gameheader').html(data['username']);
}else{ alert(data);
}
}); });
$json = array('boolean' => true, 'jsonUser' => $myusername);
if(data==true) {
$json = array('boolean' => true, 'jsonUser' => $myusername);
echo true;