php - 如何使用 jQuery 刷新数据库查询

标签 php jquery css

我正在开发一个主要由 php 驱动的真正的基本聊天。我想使用 jQuery 检查新消息并更新 #cbox div 每隔几秒。到目前为止,我已经尝试使用下面的代码来完成它。作为引用,这是我第一次将 jQuery 包含到我的任何脚本中,所以这个问题可能是一个非常简单的错误,我在新手中忽略了这一点。

我遇到的问题是 #cbox div 显示空白,它似乎没有调用 chat_post.php根本。我也会发布该代码,以防问题出在那个而不是我的 jQuery 上。要修复,我还尝试包括 <div id='cbox'>chat_post.php , 但没有产生任何结果。在这一点上,我几乎捕获了救命稻草。

<div id='sb_content'>
    <center><div id='chat'>

        <div id='ribbon' style='position: relative; margin-top:-50px; margin-left:-32px;'><center><span class='ribbon'>chat box</span></center></div>
        <div style='margin-top: -20px;'><center><span style='text-shadow: 0 0 0.2em #000;' class='admin'>admin</span> || <span style='text-shadow: 0 0 0.2em #000;' class='mod'>mod</span></center></div>

        <div id="cbox">
        <script>
        $(document).ready(function() {
            setInterval(function(){getUpdates()}, 2000); 
        });

        function getUpdates() {
            $("#cbox").load("chat_post.php");
        }
        </script>
        </div>

        <form name="message" method='post' action="chat_post.php" id="cbox_input">
            <input name="usermsg"id='usermsg' type="text" size="63" maxlength="255" />
        </form>

    </div></center>
    </div>

聊天帖子.php

<div id='cbox' align='left'>

<?php

$username = $_SESSION['login'];
$ug = $_SESSION['user_group'];


// Display messages
$sql = <<<SQL
SELECT *
FROM `chat_entries`
ORDER BY `ts` DESC
LIMIT 0,50
SQL;

$result = $db->query($sql);
$count = $result->num_rows;

if ($count != 0){
    while ($row = mysqli_fetch_array($result)) {
            $c_name = $row['author'];
            $c_text = $row['text'];
            $c_ts = $row['ts'];
            $c_id = $row['id'];

$sqlm = <<<SQL
SELECT *
FROM `users`
WHERE username = '$c_name'
SQL;

            $resultm = $db->query($sqlm);
            $countm = $resultm->num_rows;

            if ($count != 0){
                while ($rowm = mysqli_fetch_array($resultm)) {
                    $c_level = $rowm['user_group'];
                }
            }

            if ($c_level == 'mod') {
                echo "
                <a href='/user/" . $c_name . "' class='mod'>" . $c_name . "</a>
                ";
            }

            if ($c_level == 'admin') {
                echo "
                <a href='/user/" . $c_name . "' class='admin'>" . $c_name . "</a>
                ";
            }

            if ($c_level == 'member') {
                echo "
                <a href='/user/" . $c_name . "' class='member'>" . $c_name . "</a>
                ";
            }

            if ($c_level == 'guest') {
                echo "
                <i>" . $c_name . "</i>
                ";
            }

            echo "
            : " . $c_text . "<div id='cbox_div'>";

            echo "<span style='float:left;'><i>" . $c_ts . "</i></span>";

            echo "<span style='float:right;'>";

            if ($ug == 'mod' || $ug == 'admin'){
                echo " <a href='#'>Delete</a> || <a href='#'>Block</a> ||";
            }

            if ($_SESSION['login']) {
                echo "<a href=/report/?type=chat?id=" . $c_id . ">Report</a></span></div>
                ";
            }
    }
}
?>

最佳答案

删除 chat_post.php 上的额外 ID 后,我的代码运行正常。有趣的是,如此简单的事情怎么会把事情搞砸。 (: 谢谢大家的帮助!

关于php - 如何使用 jQuery 刷新数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31487100/

相关文章:

php - 按事件对数据库中的项目进行分组

jquery - 为什么 jquery 上的 for 循环在 thymeleaf 上不起作用?

jquery - 输入类型编号我们可以停止编辑并使用下拉/下拉更改值吗

css - 崇高文本 3 : how to change the size of tabs?

javascript - 解析网站并使用 'PHP Simple HTML DOM Parser' 保存特定的 DIV

php - CakePHP 3 中 MySQL 存储函数的 ORDER BY

php - 用 Twig 分页

php - 创建动态规范 url

javascript - 为什么 $ ('a.current' ).removeClass ('current' );不管用?

jquery - 使用 CSS 和 jQuery 将所有大写字母转换为正确的大小写