我有一个需要返回一些值的ajax,但是如果我使用while()
从我的db中获取所有结果,则返回“无”。我在哪里弄错了?
我的Ajax脚本发布在下面:
<script type="text/javascript" charset="utf-8">
function addmsg(type, msg) {
var obj = jQuery.parseJSON(msg);
// Your count variable
var count = obj.count;
// Your not variable
var not = obj.not;
$('#msg_count').html(count);
$('#notification').html(not);
}
function waitForMsg() {
$.ajax({
type: "GET",
url: "notification/select.php",
cache: false,
timeout: 50000,
success: function(data) {
addmsg("new", data);
setTimeout(
waitForMsg,
1000
);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
addmsg("error", textStatus + " (" + errorThrown + ")");
setTimeout(
waitForMsg,
15000);
}
});
};
$(document).ready(function() {
waitForMsg();
});
</script>
我的PHP脚本发布在下面:
$result = mysqli_query($con, "SELECT * from notification where tousername='$tousername' and isread = 0");
while ($row = mysqli_fetch_array($result)) {
$count = $result - > num_rows;
$not = $row['notification_msg'];
$res = [];
$res['count'] = $count;
$res['not'] = $not;
}
echo json_encode($res);
答案 0 :(得分:4)
您在循环中覆盖结果变量:
while (...) {
...
$res=[];
...
}
您可能需要以下内容:
$res['count'] = $result->num_rows;
while($row = mysqli_fetch_array($result)) {
$res[]['not'] = $row['notification_msg'];
}
echo json_encode($res);
答案 1 :(得分:0)
使用相同的索引覆盖您的值。你可以写这个。
while($row = mysqli_fetch_array($result)) {
$count = $result->num_rows;
$not=$row['notification_msg'];
$res=[];
$res['count'][] = $count;
$res['not'][] = $not;
}
Or
while($row = mysqli_fetch_array($result)) {
$count = $result->num_rows;
$not=$row['notification_msg'];
$res=[];
$res[]['count'] = $count;
$res[]['not'] = $not;
}
echo json_encode($res);
模具();
编写js addmsg()
函数。
function addmsg(type, msg) {
var obj = jQuery.parseJSON(msg);
// Your count variable
for(prop in obj){
var count = obj[prop][count];
var not = obj[prop][not];
$('#msg_count').html(count);
$('#notification').html(not);
}
}
答案 2 :(得分:-1)
重写你的剧本
function waitForMsg(){
$.get("notification/select.php",function(callback){
console.log(callback); // here is your data in callback variabel you can in in console log
})
}
使用您的php脚本重复此代码。
$result = mysqli_query($con, "SELECT * from notification where tousername='$tousername' and isread = 0");
$res['count'] = $result->num_rows;
while($row = mysqli_fetch_array($result)) {
$res[]['not'] = $row['notification_msg'];
}
echo json_encode($res);