我有以下php:
1) echo json_encode(array('message' => 'Invalid Login Details: '.$user));
我也有以下内容:
2) $row = mysql_fetch_assoc($result);
echo(json_encode($row));
现在考虑以下jQuery:
$.ajax({
type: "POST",
url: "get_login.php",
data: {username: getusername, password:getpassword, usertype:getusertype},
dataType: "json",
success: function(data) {
$("#message_ajax").html("<div class='successMessage'>" + data.message +"</div>");
}
})
这成功(1)但不是(2)。这显然是因为jQuery需要一个包含消息变量的php响应。 (2)不符合这个...我不知道如何使这项工作,因为我使用不同的方法来创建数组...
如何让php中的$ row与jQuery中的data.message兼容?
答案 0 :(得分:2)
尝试:
$data = array();
$data["message"] = "Valid request";
$data["row"] = mysql_fetch_assoc($result);
echo(json_encode($data));
message = row:
$data = array();
$data["message"] = mysql_fetch_assoc($result);
echo(json_encode($data));
或两行解决方案(受val启发):
$row = mysql_fetch_assoc($result);
echo(json_encode(array("message" => $row)));
答案 1 :(得分:1)
尝试
$row = mysql_fetch_assoc($result);
echo(json_encode(array('message'=>'I am the message','result'=>$row));
然后回答关于评论的第二个问题,类似于此的信息可以显示信息......
$.ajax({
type: "POST",
url: "get_login.php",
data: {username: getusername, password:getpassword, usertype:getusertype},
dataType: "json",
success: function(data) {
$("#message_ajax").html("<div class='successMessage'>" + data.message +"</div>");
var html = '';
for(var i = 0; i<data.result.length;i++){
html +='<div>'+data.result[i].fname+'</div>';
}
$('#result').html(html);
}
})
当然,您需要在适用的地方编辑它。
答案 2 :(得分:0)
我相信你没有来自$row['message']
的{{1}}。
您必须在mysql_fetch_assoc
之前在数组上明确定义message
键。
$row = mysql_fetch_assoc($result); $row['message'] = 'Hello '.$row['username']; echo(json_encode($row));