Javascript / JQuery循环访问已发布的ajax数据字符串以为其分配新值

Javascript / JQuery loop through posted ajax data string to assign new values to

本文关键字:字符串 数据 新值 分配 ajax 循环 JQuery 访问 Javascript      更新时间:2023-09-26

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

如前面的评论中所述,我建议将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所建议的,你也可以使用 javascript for循环:

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