如何重用json数据

时间:2011-12-28 09:45:51

标签: jquery jquery-plugins

我有ajax调用,它正在向我返回数据。

说我有ajax返回数据

$.ajax({
            url : "quoteSearch",
            dataType : "json",
            data : $("#searchCriteria").serialize(),
            success : function(data) {
                populateTable(data);

            },
            error : function(data) {
                console.log(data);
            }
        });

现在我想使用此表数据来更新UI。

假如我在输入框中添加10。然后单击go按钮,它应该在列的所有引号中添加10。

我该怎么做。

2 个答案:

答案 0 :(得分:0)

populateTable函数中,您应该使用$.each(data,function(k,v){ ... })循环数据并使用这些值。如果没有看到data内部或您正在尝试操作的html或populateTable函数的内容,则很难更具体地回答。

答案 1 :(得分:0)

您似乎在询问如何在非特定时间使用代码其他部分的ajax调用返回的data,具体取决于用户点击按钮的时间。如果是这样,您可以将data保存在ajax调用之外的变量中,然后从代码的其他部分访问它:

var ajaxData;

$.ajax({
   url : "quoteSearch",
   dataType : "json",
   data : $("#searchCriteria").serialize(),
   success : function(data) {
      ajaxData = data;
      populateTable(data);
   },
   error : function(data) {
      console.log(data);
   }
});

$("#yourbutton").click(function(){
   // do something with ajaxData
   if (typeof ajaxData != "undefined") {
      var valueToAdd = $("#yourinput").val();
      // your processing here
   }
});

未定义的测试是允许在ajax调用结束之前单击按钮,此时ajaxData(显然)还没有值。

您可能希望更新populateTable()函数,以便它带有一个带要添加值的参数。然后在你的ajax成功中你将该参数设置为0,但在你的按钮单击处理程序中,你将该参数设置为输入的值。据推测,您的populateTable()函数已经知道如何从data检索值,因此您可以在该功能中进行额外添加。如果没有看到你的其他代码,我真的无法提出更具体的建议。