0

実行時にJavascriptによって生成される配列があります。その配列がすべての値でいっぱいになったら、POSTを使用してサーバーに送信します。どうやってやるの ...

擬似コード:

 for(i=0;i<result.data.length;i++)
         {
           result.data[i].id

    }   
   $.post("receiver.php", { xxxxx }, function(data){ console.log(data);});

投稿でそのxxxxを更新するにはどうすればよいですか?

jqueryでドキュメントを確認しましたが、POSTですべての値を提供することを期待しています。私はそれをしたくありません。また、トラフィックを減らすために、一度だけ投稿したいと思います。

4

3 に答える 3

1

編集

join()を使用して、すべての配列値を文字列に変換し、charを使用して文字列を区切ることができます。

編集2:クマールが言ったように彼は2つのアレイを使用していた

var idsArray;
var namesArray;
for(i=0;i<result.data.length;i++)
    {
        idsArray[] = result.data[i].id; 
        namesArray[] = result.data[i].name; 
    }  

var ids   = idsArray.join(",");
var names = namesArray.join(",");
$.post("receiver.php", { ids:ids, names:names }, function(data){ console.log(data);});
于 2012-08-05T03:32:25.253 に答える
0

iBlueのコメントと同様に、投稿付きのオブジェクトを送信できます。post関数でオブジェクトを定義する必要はありません。オブジェクトを定義するため{ }の区切り文字であり、PHP連想配列に似ています。

$.post('reciever.php', myData, function(data){ /*callback*/ });

唯一のことは、myDataを次のようなオブジェクトとして設定することです。

myData = {
     0: 'info',
     1: 'info'
}

//or even something like this

myData = {
     someProp: 'info',
     someProp2: {
         anotherProp: 'moreInfo'
     }
 }

オブジェクトで非数値インデックスを使用して、プロパティを簡単に追加することもできます。

myData[2] = 'info';

または、少し異なる方法でループすることもできます。

for(i in myData){
     myData[i]; //Do something with myArr[i]
}

ループは、for in非数値プロパティもループします。そして、あなたはまだmyDataの長さを取得することができます

myData.length;

編集:

文字列を送信する代わりに:

IDs = {}
Names = {}

for(var i = 0; i < result.data.length; i++){
    IDs[i] = result.data[i].id;
    Names[i] = result.data[i].name;
}
$.post('reciever.php', {IDs: IDs, Names: Names}, function(data){});

PHPファイルでは、次のようにアクセスします。

$_POST['IDs'][0] = "some id";
$_POST['Names'][0] = "some name";

編集:

実際、インデックスは文字列として送信されると思うので、やらなければならないかもしれません

$_POST['IDs']['0']

于 2012-08-05T03:48:35.040 に答える
0

わかりませんが、これを実行したいようです。

var sendObj = {};
for (var i=0; i<result.data.length; i++) {
    var id = result.data[i].id,
        name = result.data[i].name; // or some similiar computation
    sendObj[name] = id;
}   
$.post("receiver.php", sendObj, function(data){ console.log(data);});

これによりresult.data、name=id-value-pairsとして送信されます。

于 2012-08-05T05:01:10.543 に答える