[英]Jquery post a Array
我有一個由我的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中提供所有值。我不想這樣做。 另外,我只想發送一次帖子,以減少訪問量。
編輯
您可以使用join()將所有數組值轉換為字符串,並使用一些字符將其分開。
編輯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);});
類似於iBlue的評論,您可以發送帶有post的對象; 您無需在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']
不確定,但是好像您想這樣做:
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);});
這將以name = id-value-pairs的形式發送result.data
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.