2014-11-20 3 views
3

내 코드가 작동하지만 내 테이블에 관심이 없으므로 잠시 시간이 지났습니다. xDAJAX/JSON으로 자동 업데이트

데이터베이스에있는 데이터를 테이블로로드하고 있으며 3 초마다 "자동 업데이트"되도록하고 싶습니다. 내 JSON 데이터가 정확하고 js-console에 업데이트 된 데이터가 표시됩니다. 하지만 내 테이블은 전체 페이지를 새로 고쳐야하므로 그것을 표시하고 싶지 않습니다. 그러나 그것은 내가하고 싶은 것이 아닙니다.

<script> 
$(document).ready(function() { 
    setInterval(function() {`` 
    $.ajax({ 
     url: "myStuff.php", 
     success: function(data) { 
      console.log(data); 

      myRecords = $.parseJSON(data); 
      $("#dynatable").dynatable({ 

       dataset: { 
        records: myRecords 
       } 
      }); 
     } 
    }); 
    }, 3000); 
}); 


<table id="dynatable"> 
    <thead> 
    <th>test1</th> 
    <th>test2</th> 
    </thead> 
    <tbody> 
    </tbody> 
</table> 

는 PHP :

내가 반환 된 JSON 데이터가 업데이트 될 때 내 데이터베이스에 데이터를 추가
$response = array(); 

    while ($zeile = mysqli_fetch_array($db_erg, MYSQL_ASSOC)) { 


    $response [] = array(
     "test1" => $zeile['wasd'], 
     "test2" => $zeile['wasdf'] 
    ); 

} 

echo json_encode($response); 

, 내가 그것을보고 여기

내 코드 (HTML + JS)입니다 js-console. 문제는 내 테이블이 그것을 표시하고 싶지 않다는 것입니다, 그냥 "오래된"데이터를 보여줍니다.

이 문제를 해결하기위한 제안이 있으십니까?

--------------------------------------------- ----------------

편집 :

지금 그것을 얻었다! This 내 문제를 해결하는 데 도움이되었습니다. 도와 주셔서 감사합니다!

$(document).ready(function() { 
    setInterval(function() { 
     $.ajax({ 
      url: "myStuff.php", 
      success: function(data) { 
       console.log(data); 

       var myRecords = $.parseJSON(data); 

       var dynatable = $('#dynatable').dynatable({ 
        dataset: { 
         records: myRecords 
        } 
       }).data('dynatable'); 

       dynatable.settings.dataset.originalRecords = myRecords; 
       dynatable.process(); 
      } 
     }); 
    }, 3000); 
}); 
+0

내가 parseJson을 제거 –

+0

새로운 결과를 보여 dinatable 그러나 몇몇 테이블 jQuery 플러그인 필요 '갱신'트리거를 knwo 해달라고 공식 문서 그들이 직접 JSON –

답변

1

이 코드는 테이블을 업데이트 할 수 있습니다 :) 다음은 내 코드입니다.

+0

를 사용하면 도움이 너희들을 감사하지만, 제대로 동작하지 않습니다. 데이터가 거기에 있고 업데이트 된하지만 parseJSON 제거 할 경우 데이터를 표시 할 수 없기 때문에 dynatable 데이터를 표시하려면 배열이 필요합니다 (추측). ( 하여 setInterval (기능, 코드가 작동하지 않는 parseJSON없이, 테이블 표시는 테이블 – Skar

+0

davidtall

+0

dynatable가 'settings.dataset.records' 컬렉션을 현재 테이블 뷰의 작업 데이터 세트로 간주하기 때문에 위의 이유가 작동하지 않는 이유는 간단합니다. (정렬, 필터링, 페이지 매김 후 등가 적용됨), 따라서'settings.dataset.originalRecords'를 원시 소스로 사용하고, 그 연산을 적용한 다음 그 결과를'settings.dataset.records'에 저장하여 이전에 있던 것을 덮어 씁니다. 테이블에 대한 소스 데이터 세트를 변경하려면'setting.dataset.originalRecords'를 대체하고'process()'를 호출하면 나머지는 자동으로 처리됩니다. – jangosteve