Php 如何更新<;部门>;用jQuery-AJAX的每一秒?
我正在尝试创建简单的聊天,需要在每秒钟更新聊天div。这里是div:Php 如何更新<;部门>;用jQuery-AJAX的每一秒?,php,jquery,ajax,mysqli,Php,Jquery,Ajax,Mysqli,我正在尝试创建简单的聊天,需要在每秒钟更新聊天div。这里是div: <div class="left"> <p> <?php //Chat dialogini MB'dan o‘qib beradi $result = $mysqli->query("SELECT users.nick,
<div class="left">
<p>
<?php
//Chat dialogini MB'dan o‘qib beradi
$result = $mysqli->query("SELECT
users.nick,
text.text
FROM
text
INNER JOIN users ON users.user_id = text.user_id
ORDER BY
text.chat_id ASC");
//echo $result = myquery("SELECT * FROM text");
while ($row = $result->fetch_assoc()) {
echo "<span class='user'>" . $row["nick"] . "</span>" . ": " . $row["text"] . "<br />";
}
?>
</p>
</div>
add_text.php再次重定向到index.php:
<?php
session_start();
require "php/config.php";
//Ma'lumotlar bazasi bilan bog‘lanish: BOOL = con funksiya
$mysqli = new mysqli($config['DB_HOST'], $config['DB_USERNAME'], $config['DB_PASSWORD'], $config['DB']);
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
if(!empty($_POST['chat-text']) || !ctype_space($_POST['chat-text'])) {
$mysqli->query("INSERT INTO `text` (`user_id`, `text`)
VALUES ('" . htmlspecialchars($_SESSION['id']) . "', '"
. htmlspecialchars($_POST['chat-text']) . "')");
}
header("Location: http://chat.uz/index.php");
exit
?>
您设置它的方式将不起作用
如果重定向确实有效(我对此表示怀疑),并且index.php
是包含页眉和页脚的主页,将其所有内容放入中。左p
html元素将导致极其无效的html和多个。当您在800毫秒后添加一个元素时,左p
元素,1600毫秒后再增加2次,3200毫秒后再增加4次,以此类推
当服务器开始发出ajax请求、添加更多元素、同时发出更多ajax请求时,这将导致服务器崩溃
请注意,当您使用ajax时,实际上并不是重定向,您只是在中加载从ajax请求返回的html
您应该直接以json或html的形式返回查询结果,并在javascript中处理这些结果(对于json)
我将用如下内容替换php脚本末尾的标题
重定向:
echo json_encode($mysqli->fetch_all());
exit;
并将load
方法更改为另一种允许您处理结果的ajax方法。您的控制台中有什么错误(如果有)?我不知道“为什么”它还不起作用,但是。。。不要每秒钟都这样做……为什么要用重定向到index.php来回答AJAX请求?对我来说没有什么意义。你是否打算包含index.php?1)没有控制台错误;
echo json_encode($mysqli->fetch_all());
exit;