2012-04-20 226 views
0

我正在使用jquery smartupdater更新i div與json數據。我要在請求中發送隱藏字段的值,並根據響應更新同一隱藏字段的值。動態更新隱藏字段值

問題在於,當我收到響應時,字段值在dom中更新,但更新後的值不會再次附加到url。

這裏是我的代碼:---

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

和JavaScript代碼: -

$(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 2012-04-20 09:54:35

+0

您正在讀取的值的div的id與您正在更新的div的id不同。 – 2012-04-20 10:33:43

回答

0

感謝您的答覆。我得到了這個問題,它是在smartupdator請求格式。智能更新器在第一次重複配置時發送請求。爲了發送具有更新字段值的請求,您必須更新smartupdator url。

我加入了這方面的工作: -

$(文件)。就緒(函數(){

$("#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>"); 
      }); 
     }); 
}); 

});