刷新一个shoutbox

时间:2015-08-17 07:22:51

标签: javascript php sql

我最近开始为某些人开发网站,我似乎无法让它正常工作。我的问题是我不知道如何刷新我的shoutbox div。如果你能帮助我,我会很高兴。

    <div id="chatbox"> 
        <div class="chatboxi">
    <?php
        $connection = mysql_connect('LocalDB', 'DB', 'Pass');
        mysql_select_db('DBO');

        $query = "SELECT * FROM (SELECT * FROM shoutbox ORDER BY id DESC LIMIT 15) sub ORDER BY id Desc"; // Sorts them and takes the 10 first by ID.

        $result = mysql_query($query);

        echo "<table>"; // start a table tag in the HTML

        while($row = mysql_fetch_array($result)){   //Creates a loop to loop through results
        echo "<tr><td>" . $row['name'] . "</td><td>:" . $row['post'] . "</td></tr>";   //$row['index'] the index here is a field name


        }

        ?>

        </div>
    </div>

</form> 

<form method="POST" name="chatbarf">
    <textarea cols="2" rows="3" id="chatbar" name="chatbar">
    </textarea>
    <input type="submit" value="Send" id="Send" name="Send" onsubmit="">
</form>

我一直在尝试使用此代码:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script> 
<script> 
var auto_refresh = setInterval(
function()
{
$('#chatbox').fadeOut('slow').load('chat.php').fadeIn("slow");
}, 20000);
</script>

它没有很好地工作。它刷新了整个页面,使所有内容都翻了一倍。

1 个答案:

答案 0 :(得分:0)

这是你的起点。

  

SQL到SQLI&amp; jQuery DOM Ready:

     

我已按照我的推荐将SQL从SQL更新为SQLI,但我仍然建议您研究SQLI,因为理解您在服务器上运行的源代码非常重要。

我还创建了一个名为GetShouts的函数。这样做的原因是,如果你决定改变你的发布方法(添加新的喊叫)到AJAX方法,你可以调用GetShouts(),它会在用户添加新的喊叫时更新shoutbox,这将确认用户已添加了喊叫。

HTML文件:

<!DOCTYPE html>
<html><head>
<title>Shoutbox</title>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js'></script>
<script type="text/javascript">
$(function() { //DOM is ready
function GetShouts(){
$('#chatbox').fadeOut('slow').load('chat.php').fadeIn("slow");
}
//Set interval
var auto_refresh = setInterval(GetShouts, 20000);
//Get shouts
GetShouts();
});
</script>
</head>
<body>
<div id="chatbox"></div>
</body></html>

PHP文件(chat.php):

<?php
$mysqli = new mysqli("LocalDB", "DB", "Pass", "DBO");
if ($mysqli->connect_errno) {
die("Connection Failed");
exit();
}
$Output="<table>";
if ($result = $mysqli->query("SELECT * FROM shoutbox LIMIT 15")) {
    while ($row = $result->fetch_assoc()) {
        $Output.='<tr><td>'.$row["name"].'</td><td>'.$row["post"].'</td></tr>';
    }
$result->free();
}
$mysqli->close();
$Output.="</table>";
echo $Output;
?>

如果您不理解上述任何源代码,请在下方发表评论,我会尽快回复您,并在源代码中添加任何必要的评论。

通过标记答案来显示感谢。

我希望这会有所帮助。快乐的编码!