Чтение из таблицы MYSQL каждые 5 секунд и динамическое отображение результатов на странице PHP без обновления - PullRequest
1 голос
/ 24 июня 2011

Я хочу отобразить данные из таблицы в базе данных mysql с использованием PHP, однако я хочу, чтобы данные автоматически обновлялись и получали текущие значения каждые 5 секунд. БЕЗ необходимости обновлять страницу. Это возможно? Может быть, с JQuery / AJAX? Если да, пожалуйста, объясните, как это можно сделать / укажите мне ресурс, где я могу найти такую ​​информацию

Спасибо

Ответы [ 6 ]

3 голосов
/ 24 июня 2011

Если вы используете window.setInterval() и jQuery's .load(), вы сможете делать то, что хотите. Скрипт PHP должен возвращать HTML, который должен заменить предыдущий.

Javascript:

function refreshData()
{
  // Load the content of "path/to/script.php" into an element with ID "#container".
  $('#container').load('path/to/script.php');
}

// Execute every 5 seconds
window.setInterval(refreshData, 5000);
2 голосов
/ 24 июня 2011

Действительно простой пример:

  function poll(){
       $.ajax({
           type: "GET", 
           url: "your/php/script/",
           success: function(data){
              // do something with data
           }

       });
   };
   setInterval(poll, 5000);
1 голос
/ 24 июня 2011
$(function(){
window.setInterval(function(){
    $.post("filename.php",{'field1':field1,'field2':field2,'field3':field3},function(data){
    //callbackfunction(data)
})
},30000);//millisecs

});

И пусть ваш php файл сделает все ваши sql

1 голос
/ 24 июня 2011

Просто зайдите в документацию jQuery:

http://api.jquery.com/category/ajax/

Используйте команду "jQuery.get ()" или лучше "jQuery.getJson ()", чтобы сделать http-запрос к серверу. Используйте JSON для улучшения связи между сервером и клиентом. Верните со стороны сервера строку json и преобразуйте ее на клиенте в объект javascript. (функция jQuery.getJson уже делает это за вас), чтобы вы могли легко получить доступ к ключу и значениям в массиве данных.

Просто пример:

Часть SERVER с PHP:

<?

$data = array('key'=>'value');
return json_encode($data, true);

Часть КЛИЕНТА:

$.getJSON('myurl.php', function(data) {
    // THIS ONE IS CALLED with your PHP data
    alert(data.key);
});
1 голос
/ 24 июня 2011

То, что вы описываете, является именно тем типом, для которого используется AJAX, AJAX позволяет выполнять асинхронные запросы к вашему серверу.

Для обучения я бы предложил использовать фреймворк, такой как Jquery и посмотреть на AJAX api.

В основном вам понадобится PHP-скрипт, который запрашивает базу данных и отвечает на результаты так, как вы этого хотите. Было бы предложено кодировать их JSON .

В JavaScript на клиенте вам понадобятся такие вещи как:

var poll = setInterval(function(){
   $.ajax({
     type:"GET",
     url: "yourpage.php",
     success: function(data){
        //HANDLE DATA
        // use JSON.parse(data); if your JSON encoding your data  
    }
   });
},5000)
1 голос
/ 24 июня 2011

jQuery - хороший вариант. Вот документы для ajax.

Вы можете сделать этот вызов с помощью setInterval

Примерно так может начаться.

setIntervla(updateFromDb,5000);

function updateFromDb(){
   $.ajax({
      url: "getUpdates.php",
     success: function(){
     $(this).addClass("done");
     }
   });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...