Javascript / JQuery循环通过发布的ajax数据字符串来分配新值

时间:2012-08-17 10:28:39

标签: javascript jquery ajax

我有一个通过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");
          }  
        });  

    }

1 个答案:

答案 0 :(得分:0)

如前一条评论中所述,我建议将dataString变量声明为对象:

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

现在循环使用params会更容易,只需使用函数each,例如,您已在代码中使用该函数:

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

编辑:

正如@Qpirate建议的那样,您也可以使用javascript for循环:

for(var key in dataString){
    // value => dataString[key]
}