【发布时间】:2014-12-05 09:48:02
【问题描述】:
我正在制作一个消息传递系统,我必须获取消息,这是我的代码
我的 ajax 代码来获取结果-
function fetch_conversation() {
$.ajax({
type: 'post',
url: 'message_function.php',
data: {
fetch_conversation:'conversation'
},
success: function (response) {
var r = $.parseJSON(response);
alert(r.nno);
alert(r.mmessage_from);
}
});
}
这是我的 php 代码,它获取数据并将其作为响应发送到 ajax-
if(isset($_POST['fetch_conversation'])) {
$select_message=mysql_query("select no,message_from,sent_time,message_body from messages where message_to='1' and sent_time > '2014-12-02 17:43:35' union select no,message_to,sent_time,message_body from messages where message_from='1' and sent_time > '2014-12-02 17:43:35' ")or die(mysql_error());
while($row=mysql_fetch_array($select_message)) {
$nno= $row['no'];
echo json_encode($nno);
$mmessage_from=$row['message_from'];
echo json_encode($mmessage_from);
}
exit();
}
我使用的查询获取超过 1 行,我的问题是 json 无法在 fetch 对话函数中返回值,如果查询仅获取 1 行,它 json 会显示所有值并且所有警报都是可见的。如何使我的获取对话功能可以获取超过 1 行并显示警报,请任何帮助将不胜感激,也请尝试提供跨浏览器的代码,谢谢....
【问题讨论】:
-
$mmessage_from[] 并将 echo 放在 wile 循环之外
-
我这样做了,但没有任何效果
-
你做得不对。将两个 echo 放在循环之外,在分配时 $nno 将变为 $nno[] 并且 $mmessage_from 将变为 $mmessage_from[] 当您在循环之外(退出之前)您需要使用 echo json_encode($nno 打印它们[]);并回显 json_encode($mmessage_from[]);
-
就像@MarcoMura 说的那样,或者只使用一个像
$out = array("nno" => array(),"message_form" => array())这样的数组,并且在循环之后只使用json_encode -
是的,我按照你说的那样做,不显示警报
标签: php jquery mysql ajax json