2012-04-20 4 views
0

json 데이터로 i div를 업데이트하기 위해 jquery smartupdater를 사용하고 있습니다. 요청에 따라 숨겨진 필드의 값을 보내고 응답에 따라 같은 숨겨진 필드의 값을 업데이트해야합니다.비공개 필드 값을 즉시 업데이트하십시오.

문제는 응답을 받으면 필드 값이 dom에서 업데이트되지만 업데이트 된 값이 URL에 다시 추가되지 않습니다.

여기 내 코드입니다 : ---

<div id="device_activities" class="hl_synopsis"> 
    <p id="no_update">;No Updates Available </p>; 
</div> 
<%= hidden_field_tag 'last_act', ''%> 

와 자바 스크립트 코드를 : - 답장을

$(document).ready(function(){ 
    var temp = $('#last_act_id').val(); 
    console.log("temp-->"+temp); 
    $("#device_activities").smartupdater({ 
     url : '<%= get_activity_path%>', 
     data: {"last_act_id":$("#last_act").val()}, 
     dataType : 'json', 
     minTimeout : 6000 
    }, function(data) { 
      $('#last_act').val(data[data.length-1].id); 
      console.log(data[data.length-1].id); 
      console.log($('#last_act').val()); 
     $.each(data, function() { 
      $('div#device_activities p#no_update').remove(); 
      $.each(this, function(key, value) { 
       $("div#device_activities").append("<p id='activity'><strong>" + key + " :</strong> " + value + "</p>"); 
      }); 
     }); 
    }); 
}); 
+1

코드를 올바르게 포맷하십시오. – TRR

+0

값을 읽고있는 div의 ID와 업데이트중인 ID가 동일하지 않습니다. –

답변

0

감사합니다. 문제가 발생했습니다. 스마트 업데이트 요청 형식입니다. Smart updator가 처음으로 구성된 요청을 반복적으로 전송합니다. 업데이트 된 필드 값으로 요청을 보내려면 smartupdator url을 업데이트해야합니다.

내가 추가하여이 작업을 가지고 : -

$ (문서) .ready (함수() {

$("#device_activities").smartupdater({ 
    url : '<%= get_activity_path%>', 
    dataType : 'json', 
    minTimeout : 10000 
}, function(data) { 
     <!-- Get last activity id from json and update smartupdater url using it, after that delet id element from json data --> 
     $("#device_activities").smartupdater("alterUrl", '<%= get_activity_path%>', {"last_act_id": data[data.length-1].id}); 

     $.each(data, function() { 
      if(data[0] != undefined && $('div#device_activities p#no_update')){ 
       $('div#device_activities p#no_update').remove(); 
      } 
      $.each(this, function(key, value) {<!-- update activity div from json --> 
       $("div#device_activities").append("<p id='activity'><strong>" + key + " :</strong> " + value + "</p>"); 
      }); 
     }); 
}); 

});

관련 문제