2016-03-29 3 views
-1

Я очень смущен тем, как я могу использовать AJAX, может перезагрузить часть веб-страницы, которая использует PHP для выполнения SQL-запроса в моей базе данных. Вот мой примерПерезагрузка SQL-запроса с помощью AJAX/JQuery

<tbody> 
     <?php 

     $stmt = $DB_con->prepare("SELECT * FROM script_data WHERE email = :email OR username = :uname"); 
     $stmt->execute(array(':uname'=>$_SESSION['username'], ':email' => $_SESSION['email']));  
     $count = $stmt->rowCount(); 

     while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 

       echo '<tr>'; 
       echo '<td>' . $row['script_ID'] . '</td>'; 
       echo '<td>' . gmdate("H:i:s", $row['runtime']) . '</td>'; 
       echo '<td>' . $row['status'] . '</td>'; 
       echo '<td>' . $row['script_name'] . '</td>'; 
       echo '<td>' . $row['script_version'] . '</td>'; 
       echo '</tr>'; 

        } 

        if($count == 0) { 
        $bot_is_running = false; 
        echo '<tr>'; 
        echo '<td>No active Bots</td>'; 
        echo '</tr>'; 
         } 

         ?> 
    </tbody> 

Это просто получать информацию из базы данных и представить его в виде таблицы, моя проблема заключается в том, что она должна обновляться каждые 5 секунд или около того для большинства до даты данных (моя база данных постоянно обновляется новыми данными из приложения Java)

любые идеи о том, как я могу это сделать?

+0

jQuery имеет функцию '.load()', которая может вам пригодиться: http://api.jquery.com/load/ – David

+0

JS имеет функцию 'setInterval()', которую вы можете использовать с функцией @ Дэвид упоминает выше, чтобы создать время. –

ответ

1

Предположительно это содержимое страницы находится на странице, которую можно запросить в некотором роде? Назовем это myPage.php ради примера. Вы можете использовать the .load() function в jQuery для извлечения страницы с сервера и размещения ее содержимого в элементе. Например:

$('tbody').load('myPage.php tbody tr'); 

Это заменит содержимое tbody на текущей странице с tr элементов, возвращаемых из запрашиваемой страницы.

Чтобы сделать это «каждые 5 секунд», вы должны использовать что-то вроде setInterval(). Например:

setInterval(function() { 
    $('tbody').load('myPage.php tbody tr'); 
}, 5000); 

Примечание: Извлечение содержимого страницы с сервера не самый быстрый способ сделать вещи, так что если вы собираетесь быть повторно загрузки этого много (каждые несколько секунд), а затем вы можете немного ускорить работу. Создайте отдельную страницу PHP, которая возвращает только обновленные данные вместо полностью отображаемой страницы. Затем вместо .load() используйте .get() для извлечения данных JSON с этой страницы и обновления уже существующей разметки на стороне клиента.

Есть способы сделать это, в зависимости от того, какие технологии вы используете. Получение всей страницы должно работы, но я рекомендую вам изучить более структурированный способ сделать это даже в качестве учебного опыта.

+0

Да, это то, что мне нужно, чтобы реализовать его на практике и посмотреть, работает ли это! –

Смежные вопросы