使用AJAX / Jquery重新加载SQL查询

时间:2016-03-29 18:56:57

标签: php jquery mysql ajax

我非常困惑我如何使用AJAX可以重新加载使用PHP在我的数据库上执行SQL查询的网页的一部分。这是我的例子

 <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应用程序)

关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:1)

据推测,此页面内容位于可以某种方式请求的页面上?为了举个例子,我们称之为myPage.php。您可以在jQuery中使用the .load() function从服务器获取页面并将其内容放在元素中。例如:

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

这将使用从请求的页面返回的tbody元素替换当前页面中tr的内容。

为了做到这一点&#34;每5秒钟&#34;你使用setInterval()之类的东西。例如:

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

注意:从服务器获取页面内容并不是最快的方式,所以如果您要重新加载很多(每隔几秒钟)那么你可能会加快速度。创建一个单独的PHP页面,它只返回更新的数据而不是完全呈现的页面。然后使用.load()代替.get()从该页面获取JSON数据并更新您已有的客户端标记。

根据您正在使用的技术,有许多方法可以执行此操作。获取整个页面应工作,但我建议你研究一种更有条理的方式,即使只是作为一种学习体验。