2016-03-29 12 views
-1

私はAJAXを使用する方法に非常に混乱しています。私のデータベースでSQLクエリを実行するためにPHPを使用するWebページの一部をリロードできます。ここに私の例AJAX/Jqueryを使用して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秒程度にリフレッシュする必要があるということです

どうすればいいのですか?

+0

jQueryには、あなたにとって使いやすい '.load()'関数があります:http://api.jquery.com/load/ – David

+0

JSには、関数@で使用できる 'setInterval()'関数があります。デイヴィッドは時限イベントを作成するために上記のことを述べています。 –

答えて

1

おそらくこのページのコンテンツは、何らかの方法でリクエストできるページにありますか?例として、myPage.phpとしましょう。 jQueryでthe .load() functionを使用すると、サーバーからページを取得し、そのコンテンツを要素に配置できます。たとえば:

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

これは、要求されたページから返さtr要素と、現在のページにtbodyの内容を置き換えます。

"5秒ごとに"するには、setInterval()のようなものを使用します。

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

注:たとえば、サーバからの取得ページの内容は、物事を行うための最速の方法ではありませんので、あなたがこのたくさん(数秒ごと)を次に再読み込みするつもりなら物事を少し速くするかもしれません。完全にレンダリングされたページではなく、更新されたデータを返すだけの別のPHPページを作成します。次に、​​の代わりに.get()を使用して、そのページからJSONデータを取得し、既存のクライアント側のマークアップを更新します。

あなたが使用している技術によっては、多くの方法があります。があります。ページ全体を取得するにはが必要ですが、学習の経験としてもこれを行うためのより構造化された方法を検討することをおすすめします。

+0

はい、これは私が必要としていることです。 –

関連する問題