2017-06-20 6 views
0

まず、私が1週間以内にコーディングしていたとしましょう。 PHPのJSONエンコードファイルをより読みやすいファイルに吐き出すAJAX呼び出しを使用してデータを更新するJavaScriptを作成しようとしています。AJAX関数をリフレッシュする(PHPを入手する)

私は正常にHTMLテーブルにjsonを吐き出しましたが、私はこのデータを自動的にリフレッシュしたいので、データベースが変更されたときに自分のHTMLも更新されます。

$(document).ready(function(){ 

refresh(); 
}); 

function refresh() { 
setTimeout(function() { 
dbupdates(); 
refresh(); 
}, 500); 
} 

function dbupdates(){ 
$.ajax({ 
    url: 'fetchtest.php', 
    type: 'get', 
    dataType: 'JSON', 
    success: function(response){ 
// for loop to only write 10 
     for(var i=0; i<10; i++){ 
      var id01 = response[i].id1; 
      var id02 = response[i].id2; 
      var id03 = response[i].id3; 
// tr located in html 
      var tr_str = "<tr>" + 
       "<td align='center'>" + id01 + "</td>" + 
       "<td align='center'>" + id02 + "</td>" + 
       "<td align='center'>" + id03 + "</td>" + 
       "</tr>"; 
// table ID in html file 
      $("#HTMLTABLE").append(tr_str); 
     } 

    } 
}); 
}; 

私は、Webページを実行すると、それはそれだけで同じデータ(DB変更された場合、おそらく変化しない)の新しい10個のエントリのテーブルを作成し、無限ループに入ります。

私は正確になぜこれが起こるのか知っていますが、実際には10テーブルだけをリフレッシュするためにどのような機能を使用する必要がありますか?

おかげ

答えて

0

ません使用はappend()HTMLに置き換える()関数の使用が

<div id="HTMLTABLE"></div> 
<script> 
    $(document).ready(function(){ 

     refresh(); 
     }); 

     function refresh() { 
     setTimeout(function() { 
     dbupdates(); 
     refresh(); 
     }, 1500); 
     } 

     function dbupdates(){ 
     $.ajax({ 
      url: 'fetchtest.php', 
      type: 'get', 
      dataType: 'JSON', 
      success: function(response){ 
     // for loop to only write 10 
     var tr_str =''; 
       for(var i=0; i<response.length; i++){ 
        var id01 = response[i].id; 
        var id02 = response[i].name; 
        var id03 = response[i].salery; 
     // tr located in html 
        tr_str += "<tr>" + 
         "<td align='center'>" + id01 + "</td>" + 
         "<td align='center'>" + id02 + "</td>" + 
         "<td align='center'>" + id03 + "</td>" + 
         "</tr>"; 
     // table ID in html file 

       } 
      $("#HTMLTABLE").html(tr_str); 

      } 
     }); 
     }; 
</script> 
+0

あなたの問題を解決これは無限ループを停止しているようだが、今では唯一の最初の配列を取得していない10ループ文に問題はありますか?ありがとう –

+0

ちょうど新しい編集答えを試してください –

+0

まだ動作していない、各id01、02,03のいずれかを吐き出す。これは私のjsonファイルです。[{"id1": "34"、 "id2": "0625SS036"、 "id3": "40"}、{"id1": "105"、 "id2": "0625SS107" id3 ":" 40 "}、{" jid1 ":" 118 "、" id2 ":" 0625SS120 "、" id3 ":" 35 "}、.......(200+文字列) –

関連する問題