0

我必须从数据库中获取数据,并且对于每条记录我想显示不同的对话框。我尝试了下面的代码但没有工作......我需要动态创建吗?

我的代码中缺少什么?

 $.getJSON("jsonfile.php", function(json){ 
    $.each(json, function (key, val) {
      $.each(val, function (key, val1) {
             if(key=='rem_doc_deal_ref')
          {
        $('#rem_doc_deal_ref').text(val1);
          }
       $( "#dialog_rem_doc" ).dialog({
       buttons: {
      "Ok!": function() {
       $( this ).dialog( "close" );
       },
      Cancel: function() {
      $( this ).dialog( "close" );
       }
     }
    });
    });
  });
});

这是我的 JSON

[{"id":"27","rem_doc_deal_ref":"RH-D-139"},{"id":"43","rem_doc_deal_ref":"RH-D-140"},{"id":"41","rem_doc_deal_ref":"RH-D-144"},{"id":"55","rem_doc_deal_ref":"RH-D-157"},{"id":"33","rem_doc_deal_ref":"RH-D-158"},{"id":"22","rem_doc_deal_ref":"RH-D-233"}}

这是我的 HTML

<div id="dialog_rem_doc" title="Reminder Alert" style="display:none;">
    <span id="rem_doc_deal_ref"></span>
</div>
4

1 回答 1

0

这是动态添加对话框的方法。

$.getJSON("jsonfile.php", function(json){ 
    $.each(json, function (key, val) {
        var deal_ref = val.rem_doc_deal_ref;
        $('<div title="Reminder Alert" style="display: none;">' + deal_ref + '</div>')
            .appendTo('#container').
            .dialog({
                buttons: {
                    "Ok!": function() {
                        $( this ).dialog( "close" );
                    },
                    Cancel: function() {
                        $( this ).dialog( "close" );
                    }
                }
            });
    });
});

我省略了idDIV 的属性,因为它们需要是唯一的。由于这些是动态添加的,我根本不知道您是否需要 ID。如果这样做,您可以通过附加key前缀来制作唯一 ID。我也省略了<span>; 看起来那只是将 html 放入原始代码的地方,但现在没有必要了。您可以将其添加回附加的 HTML。

请注意,您不需要使用$.each来处理 JSON 数组中对象的内容。只需通过属性名称访问它们,val.rem_doc_deal_ref.

于 2013-09-14T11:21:32.480 回答