2014-03-29 16 views
1

我有我的JS腳本下面的PHP:Javascript數組與後

cats = []; cats.push(cat1); cats.push(cat2); 
    $.post(URL+"/edit-article.php", { id: artId, title: "PZujF0 wxKLCW", content: "ILEn3o oU9Ft6oU5", author: author, cat_id: cats }).done(function(data2) {......} 

CAT1和CAT2一些隨機產生的整數,所以我發送給我的PHP腳本整數數組。我如何檢索他們在我的PHP腳本?目前,我有這樣的事情:

$cat_id=array(); 
$cat_id=array_map('intval',explode(',',$_POST['cat_id'])); 

,但我的代碼假定從JS發送陣列是以下等效:

<form action='edit-article.php' method='post'> 
    <input type='hidden' name='cat_id' value='1,2'> 
</form> 

從我張貼在JS很明顯,有代碼只有2個整數,所以我大概可以做類似:

$cat_id=$_POST['cat_id']; 
$id1=(int)$cat_id[0]; 
$id2=(int)$cat_id[1]; 

但我怎麼能正確解析PHP中的數組任意數量的元素,並確保我留下了int數組是誰?

LE:我遇到的問題是瞭解JS如何將數據發送到我的PHP腳本中,以便正確提取數據。在我收集的時候,$ POST值總是以字符串的形式檢索(對於從JS發送的值,還是隻是表單和內容?),但是我的cat_id數組是像{'1','2','3 '}還是像'1,2,3'這樣的字符串?

+0

使用一個for循環得到所有項目 – BlackPearl

+0

'print_r($ _ POST);' –

回答

1

目前你發送一個數組,所以沒有必要爆炸:

$cat_id = array_map('intval', $_POST['cat_id']); 

或者,您可以創建在JavaScript端的逗號分隔的列表:

cats = cats.join(); 
+0

是的,這是我不太確定的,如果我需要爆炸或不是,謝謝:) –