0

我有一个通过 ajax 更新数据库的功能。然后我的问题是如何更新页面上显示的数据以显示更新的详细信息。POST 数据可能会有所不同,因此数据字符串将是这样的:

        var dataString = '[name resource we are editing]=1' + 
        '&para1='+ para1 + 
        '&para2=' + para2+
        '&para3=' + para3

我希望下面的函数拆分或循环遍历数据字符串中的每个 POST 变量,以更新页面上元素的文本。我不知道怎么做。

function editAccount(dataString, details, form){
        status = $(".status");
        $.ajax({  
          type: "POST",  
          url: "<?php echo BASE_PATH; ?>/edit/",  
          data: dataString,  
            success: function(response) { 
                $.each(response, function(key, value) { 
                success_code = key;
                message = value;
               });

              if(success_code == 1){
                status.text(message).addClass("valid");
                //show details and hide form
                $("#" + details).show();
                $("#" + form).hide();   
                            //HOW to do below?
                //update details being displayed with datasource data 
                //loop through dataString to assign eg. $('#para1')text(para1);

              } else {
                status.text(message).addClass("invalid");
              }
            },
            error: function(response){ 
            status.text("There was a problem updating your details into our database.  Please contact us to report this error.").addClass("invalid");
          }  
        });  

    }
4

1 回答 1

0

正如之前的评论中提到的,我建议将dataString变量声明为对象:

var dataString = { '[name resource we are editing]' : 1, 
        'para1': para1, 
        'para2': para2,
        'para3': para3
        }

现在循环参数会容易得多,只需使用each您已经在代码中使用的函数:

$.each(dataString, function(key, value) {
    // Do stuff with each param
});

编辑:

正如@Qpirate 建议的那样,您还可以使用 javascriptfor循环:

for(var key in dataString){
    // value => dataString[key]
}
于 2012-08-17T11:00:36.017 回答