Когда кто-то на моем сервере Minecraft отправляет сообщение чата, плагин отправляет это сообщение в файл listener.php, который вводит информацию в базу данных Mysql. Я пытаюсь отобразить его в реальном времени (ну, как можно ближе) в административной панели, которую я создаю для веб-сайта. Хотя использование .load работает так же, как получение содержимого на странице, оно ломает полосы прокрутки, управляемые jquery, которые есть у меня в чате, делая его там, где вы не можете прокручивать сообщения вниз. Это потому, что у него должно быть достаточно, чтобы оправдать необходимость прокрутки, прежде чем появится полоса прокрутки, но с .load единственным подарком является то, что в него загружается содержимое chat.php. единственный способ заставить чат работать — это включить chat.php с включенным php, при этом chat.php выглядит так:
<?phpecho "<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 на то, какой метод использовать, либо рассказываю, что нужно сделать, и оставляю кодирование на моем усмотрении, в долгосрочной перспективе поможет гораздо больше. , Заранее спасибо!
ПРИМЕЧАНИЕ: скопируйте этот код 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><?phpecho "<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>";
?>
А ТАКЖЕ:
Там в папке, где этот код 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);
?>
Других решений пока нет …