2014-11-08 63 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