2014-11-02 94 views
0

當我的Minecraft服務器上的某個人發送聊天消息時,插件會將該消息發送到listener.php文件,該文件將信息輸入Mysql數據庫。我試圖在我爲網站構建的管理面板中實時顯示它(儘可能靠近)。雖然使用.load儘可能在頁面上獲取內容,但它打破了我在chatbox上運行的jQuery操作滾動條,使其無法向下滾動瀏覽文章。這是因爲在滾動條出現之前必須有足夠的滾動條才能保證滾動條的存在,但是.load只能存在chat.php的內容。我可以聊天的工作的唯一辦法是包括一個PHP包括chat.php,與chat.php看起來像:Reload PHP include without innerHTML

<?php 


echo "<div class='block messages scrollBox'><div class='scroll' style='height: 320px;'> "; 

$con=mysqli_connect("localhost","bduser","pass","dbase"); 
// Check connection 
if (mysqli_connect_errno()) { 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$result = mysqli_query($con,"SELECT * FROM server_chat ORDER BY date DESC , time DESC LIMIT 15"); 

while($row = mysqli_fetch_array($result)) { 

$user = $row['user']; 
$message = $row['message']; 
$date = $row['date']; 
$time = $row['time']; 


echo "<div class='item clearfix'><div class='image'><a href='#'><img src='../face.php?u=$user'   class='img-polaroid' /></a></div><div class='info'><a class='name' href='#'>$user</a><p>$message</p> <span>$time $date</span></div></div>"; 



} 

mysqli_close($con); 

echo "</div></div>"; 
?> 

如何保持上面的格式顯示聊天表的內容在我的數據庫上,但每隔5秒左右更新一次?有沒有辦法自動重新查詢數據庫?雖然代碼片段有所幫助,但我在學習過程中,要麼通過q鏈接指向正確的方向使用什麼方法,要麼告訴我需要完成什麼以及將代碼留給我,從長遠來看可以幫助更多。提前致謝!

回答

0

注意:複製PHP代碼太多,我改變它

試試這個:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script> 
<script> 
      $(document).ready(function() { 
       var interval = setInterval(function() { 
        $.ajax({ 
         url: 'chat_reload.php', 
         success: function(data) { 
          $('#toreload').html(data); 
         } 
        }); 
       }, 1000); 
      });   
</script> 



<?php 


echo "<div class='block messages scrollBox'><div class='scroll' style='height: 320px;'><div id='toreload'> "; 

$con=mysqli_connect("localhost","bduser","pass","dbase"); 
// Check connection 
if (mysqli_connect_errno()) { 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$result = mysqli_query($con,"SELECT * FROM server_chat ORDER BY date DESC , time DESC LIMIT 15"); 

while($row = mysqli_fetch_array($result)) { 

$user = $row['user']; 
$message = $row['message']; 
$date = $row['date']; 
$time = $row['time']; 


echo "<div class='item clearfix'><div class='image'><a href='#'><img src='../face.php?u=$user'   class='img-polaroid' /></a></div><div class='info'><a class='name' href='#'>$user</a><p>$message</p> <span>$time $date</span></div></div>"; 



} 

mysqli_close($con); 

echo "</div></div></div>"; 
?> 

AND:有文件夾 ,這是哪裏的PHP代碼使用名chat_reload新文件.PHP,並把有此代碼:

<?php 
    $con=mysqli_connect("localhost","bduser","pass","dbase"); 
    // Check connection 
    if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    $result = mysqli_query($con,"SELECT * FROM server_chat ORDER BY date DESC , time DESC LIMIT 15"); 

    while($row = mysqli_fetch_array($result)) { 

    $user = $row['user']; 
    $message = $row['message']; 
    $date = $row['date']; 
    $time = $row['time']; 


    echo "<div class='item clearfix'><div class='image'><a href='#'><img src='../face.php?u=$user'   class='img-polaroid' /></a></div><div class='info'><a class='name' href='#'>$user</a><p>$message</p> <span>$time $date</span></div></div>"; 



    } 

    mysqli_close($con); 
?> 
+0

它加載聊天每1秒(1000個milis eecond ...)如果你想要5 secont,1000 inScript,改爲5000。 – Meldiron 2014-11-02 21:19:32