客户端关键jquery代码
$('#submit').click(function(e){
var username=$('#name').val();
var pwd=$('#pwd').val();
var message=$('#message').val();
$.post(validate2.php,
{username:username,pwd:pwd,message:message},
function(response){
alert(response.status=+response.status); //输出返回状态对话框
},
json
);
e.preventdefault();
});
服务端关键php代码
$query=insert into messages values(12345,\what\,\1222\);
$result=$mysqli->query($query);
$response['status']=true;
echo json_encode($response);
$result->free();
$mysqli->close();
exit();
运行完之后数据库确实加上新的数据了,
但那个$response['status']=true死活返回不到客户端,
回复讨论(解决方案) 看看有没有 bom 头
没懂==bom头跟这个啥关系...我刚搞php3天
这个问题我以前碰到过,不是没有返回给客户端,而是客户端只是收到了一串字符,而没有把那一串json字符转化为json对象,在客户端先使用eval(response)把json对象制造出来,才能调用其response.status属性。
这个问题我以前碰到过,不是没有返回给客户端,而是客户端只是收到了一串字符,而没有把那一串json字符转化为json对象,在客户端先使用eval(response)把json对象制造出来,才能调用其response.status属性。
这个问题我以前碰到过,不是没有返回给客户端,而是客户端只是收到了一串字符,而没有把那一串json字符转化为json对象,在客户端先使用eval(response)把json对象制造出来,才能调用其response.status属性。
可是是这样,如果我把服务端$query=insert into messages values(12345,\what\,\1222\);
改成对数据库的查询,如“select * from messages”就能收到true
或者我把true那行向上移到mysqli-〉query()之前就收得到啊
这个问题我以前碰到过,不是没有返回给客户端,而是客户端只是收到了一串字符,而没有把那一串json字符转化为json对象,在客户端先使用eval(response)把json对象制造出来,才能调用其response.status属性。
可是是这样,如果我把服务端$query=insert into messages values(12345,\what\,\1222\);
改成对数据库的查询,如“select * from messages”就能收到true
或者我把true那行向上移到mysqli-〉query()之前就收得到啊 怪哉。。。。。没见过的现象 把服务器返回的东西打印出来看看,先不要解释json
把json参数去掉。
var username=$('#name').val();
var pwd=$('#pwd').val();
var message=$('#message').val();
$.post(validate2.php,
{username:username,pwd:pwd,message:message},
function(response){
alert(response.status=+response.status); //输出返回状态对话框
},
json
);
e.preventdefault();
});
然后在php端,使用file_put_contents('sos.txt', json_encode($_request), true);
运行后,看看sos.txt有什么,正确应该是你提交的参数。
已搞定....为了以后有人搜同样问题我解释下....
楼主小白,以后在调试的时候应该在php第一行加上
ini_set(display_errors, on); //输出错误信息
再测试发现
fatal error: call to a member function free() on a non-object in /var/www/html/validate2.php on line 60
就是说返回的是1,0我那个free应该去掉....去掉后就好了..