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たとえば、すでにコードで使用している function を使用するだけで、params をループするのがはるかに簡単になります。

$.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 に答える