gpt4 book ai didi

javascript - ajax 和 php 之间的数组 json

转载 作者:行者123 更新时间:2023-12-03 09:51:49 25 4
gpt4 key购买 nike

我正在开发一个简单的留言簿,我想在不刷新页面的情况下更新包含所有消息的表,因为如果有人正在编写评论并且页面刷新,评论将会丢失。所以我开始用ajax编写一些代码来更新表,但我不知道如何将数组(带有注释、用户名、日期ecc)从php发送到ajax。在数据库中,我有一个名为“wrote”的列,它可以是 0(未读)或 1(已读)。 1 当消息已经摆在桌面上时。这就是我从现在开始所做的,也许是错的

getGuest.php

<?php

include("Database.php");

$Database = new Database( "localhost", "root", "1234");
$Database->connectToServer();
$Database->connectToDatabase("test");

$result = $Database->unreadMessages();

$rows=mysql_fetch_array($result);

echo json_encode($rows);
?>

脚本.js

window.onload = function(){
interval = window.setInterval('updateGuest()',5000);
}



function updateGuest() {
$.ajax({
url: 'getGuest.php',
method: 'get',
success: on_getGuest_success,
error: on_error
});
}

function on_getGuest_success(data) {
for(var i=0; i<data.length;i++) {
// HERE I WANT TO ADD A ROW WITH ALL MESSAGE UNREAD BUT I DONT KNOW WHAT I HAVE TO DO
}

}

function on_error() {
//do something

}

最佳答案

  1. 确保 JSON 包含数组
  2. 添加 header
  3. 使用 getJSON

像这样:

PHP

$data = array(); 
while ($row = mysql_fetch_assoc($result)) {
$data[] = $row;
}
header("content-type: application/json");
echo json_encode($data);

JS:

$(function() { // when page has loaded
var tId = setInterval(function() { // save the tId to allow to clearTimeout if needed
$.getJSON("getGuest.php",function(data) { // call the server using jQuery's JSON access
$('.guestbook').empty(); // empty the container
var rows = []; // create an array to hold the rows
$.each(data,function(_,item) { // loop over the returned data adding rows to array
rows.push('<tr><td class="name" width="10%">' + item.name + '</td></tr>');
});
$('.guestbook').html(rows.join()); // insert the array as a string
});
},5000); // every 5 secs
});

我个人只会返回自上次以来的新内容

关于javascript - ajax 和 php 之间的数组 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30867186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com