我有一个AJAX请求,基本上查询数据库然后将数据发回JS,但是我无法打印单个数据位。
我的代码如下:
$.ajax({
type: 'POST',
url: '_process/offerrespres.php',
dataType: 'json',
data: {
msgid: msgid,
usrid: usrid
},
success: function(){
console.log(JSON.parse(data.pro_name));
console.log(data.accept_decline);
}
});
PHP:
<?php
include_once 'connect.php';
if ($_POST) {
$msgid = mysql_escape_string($_POST['msgid']);
$usrid = mysql_escape_string($_POST['usrid']);
$getmsgq = mysql_query("SELECT * FROM booking_requests WHERE receiver_id = '$usrid' AND msg_id = '$msgid'");
$getmsg_info = mysql_fetch_array($getmsgq);
$data['success'] = true;
$data['date_sent'] = $getmsg_info['date_sent'];
$data['pro_name'] = $getmsg_info['pro_name'];
$data['accept_decline'] = $getmsg_info['accept_decline'];
}
header("Content-Type: application/json", true);
echo json_encode($data);
mysql_close();
?>
你可以看到我试过这个:
console.log(JSON.parse(data.pro_name));
console.log(data.accept_decline);
控制台中的错误显示“数据未定义”。 PHP文件的输出是正确的以及应该如何,我只是无法打印一个单独的数据。
答案 0 :(得分:3)
您的回调函数不接受返回数据作为参数
标有success: function(){
的行应为success: function(data){
此外,您对true
的通话中不需要header("Content-Type: application/json", true);
。此函数的默认操作是替换标题,因此已隐含true
。只有在您不想替换之前的Content-Type
时才需要该参数。对您的代码没有任何影响,只是提示。
答案 1 :(得分:0)
您未在success函数中指定数据变量。 它应该是:
success: function(data){
console.log(JSON.parse(data.pro_name));
console.log(data.accept_decline);
}