簡體   English   中英

jQuery發布一個數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM