2016-05-12 24 views
0

以下のコードは、4つのパラメータ(名前)をPHPファイルに渡しています。 私のアプリケーションでは、4つ以上の名前が時間とともに変化するため、配列のループを使い、名前の数として「n」を指定しようとしました。 正しく動作させる方法が見つかりませんでした。名前の数 "n"が変数であるループを含めるために、以下の作業コードを変更する方法を教えてください。ループを使用して動的にAjaxデータを変更する

var name1 = "a"; 
var name2 = "b"; 
var name3 = "c"; 
var name4 = "d"; 

$.ajax({ 
    type: 'GET', 
    url: 'test12.php', 
    data: { par1: name1, par2: name2, par3: name3, par4: name4 }, 

}); 

Thnakあなたは大変です。

答えて

1

すべての名前がグローバルであれば、私はどうなる:

var data = {}, n = 4; 
for (i = 1; i <= n; i++) 
    data['par'+i] = window['name'+i]; 

$.ajax({ 
    type: 'GET', 
    url: 'test12.php', 
    data: data // can be short-handed as "data" instead of "data: data" 
}); 

彼らはグローバルでない場合は、私が代わりにこの方法を配列に名前を入れて、その後、それらをループします:

var data = {}, names = [name1, name2, name3, name4], n = names.length; 
for (i = 1; i <= n; i++) 
    data['par'+i] = names[i-1]; 

$.ajax({ 
    type: 'GET', 
    url: 'test12.php', 
    data 
}); 
+0

それは本当に短い手ではありません。他の方法は$ _POST ['data']にすべてを投稿します –

+0

ありがとう!最初の部分(グローバル)はうまくいきます。私はそれをテストしました。 名前がグローバルでない場合、2番目の部分は私のためには機能しません。なぜなら、いくつの名前があるか分からないからです。 var names = [name1、name2、name3、name4] – Menachem

+0

@Pamblamと思う? jQueryは「データ」に対して['$ $。param'](http://api.jquery.com/jquery.param/)を呼び出します。 'data'自体は送信されるものではありません。 – 4castle

関連する問題