2014-11-08 47 views
0

如果已經提出了這個問題,我很抱歉。我找不到它。Jquery加載相同的腳本

我正在製作一個AJAX聊天系統。這很好,我遇到的唯一問題是我需要聊天來每秒自動刷新一次。我知道這可以用load()函數來完成...

但我想刷新其中的div和PHP,現在從另一個腳本加載它。 我的一段代碼(JS):

<script> 
    setInterval(function() { 
    $('#container').load(); 
    }, 1000); </script> 

我要重新加載DIV /每秒刷新一次:

<div class="container" id="container"> 
        <?php 
        $queryChat = $mysqli->query("SELECT id,message,username,date FROM chat ORDER BY id DESC LIMIT 0, 10"); 
        while($infoChat = $queryChat->fetch_array()) 
        { 
        ?> 
        <div class="text"> 
         <div class="name"><?php echo $infoChat['username']; ?></div> 
         <div class="time"><?php echo $infoChat['date']; ?></div> 
         <div class="body"><?php echo $infoChat['message']; ?></div> 
        </div> 
        <?php 
        } 
        ?> 
        </div> 

如果我去做$('#container').load('index.php');它會給我這個(網站也將非常慢):$('#container')。load('index.php');

非常感謝您提前幫忙!我的英語也很糟糕,因爲它不是我的母語:-)

+2

編寫一個腳本,只是返回什麼應該進入'#container',並呼籲以'.load()',而不是調用主'.index.php'。 – Barmar 2014-11-08 17:22:42

回答

1

難道你不認爲它會更清潔,只需include()您的「消息池」腳本在您的<div class="container" id="container">內,這樣您的主要聊天頁面就會有:

<div class="container" id="container"> 
<?php 
include("chatScript.php"); 
?> 
</div> 

然後chatScript.php將包含:

<?php 
    $queryChat = $mysqli->query("SELECT id,message,username,date FROM chat ORDER BY id DESC LIMIT 0, 10"); 
    while($infoChat = $queryChat->fetch_array()) 
    { 
    ?> 
    <div class="text"> 
     <div class="name"><?php echo $infoChat['username']; ?></div> 
     <div class="time"><?php echo $infoChat['date']; ?></div> 
     <div class="body"><?php echo $infoChat['message']; ?></div> 
    </div> 
    <?php 
    } 
?> 

然後,你可以簡單地做

<script> 
    setInterval(function() { 
    $('#container').load(); 
    }, 1000); 
</script> 

加載後<div class="container" id="container">

希望這有助於

+0

謝謝,這工作! – RezaMO 2014-11-08 17:35:49