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', ''%>

および 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>");
            });
        });
    });
});
4

1 に答える 1

0

返信いただきありがとうございます。問題が発生しました。smartupdator リクエスト形式でした。スマート アップデーターは、最初に構成された要求を繰り返し送信します。更新されたフィールド値でリクエストを送信するには、smartupdator の URL を更新する必要があります。

私は追加することでこれを機能させました:--

$(document).ready(function(){

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

});

于 2012-04-23T11:39:32.493 に答える