2010-02-28 15 views
1

從複選框收集值:jQuery的數組不會被髮送到PHP文件

var filtersArray = $("input[@name='filters']:checked").map(function(i,n){ 
         return $(n).val(); 
        }).get(); 

發佈到PHP文件

$.post("php/performSearch.php", { 
    keywords: $('#keywords').val(), 
    'filters[]': filtersArray}, 
    function(data){ 
     //alert(data); 
    }); 

PHP不獲取數組不管我做到這一點 我有:

$postedKeywords = $_POST['keywords']; 
$postedFilters = $_POST['filters[]']; 

關鍵字發佈,過濾器[]不是。我試圖print_r的....沒有結果..

我想:

foreach($_POST as $val) 
    echo $val; 

我得到的$ _POST值[ '關鍵字']和陣$ _ POST [ '過濾器']因此,它是發送但由於某種原因,我不能使用這些值。

回答

2

你試過:

$.post(
    'php/performSearch.php', { 
     keywords: $('#keywords').val(), 
     filters: filtersArray 
    }, 
    function(data) { 

    } 
); 

這將發送看起來,像這樣的POST請求:

filters[]=1&filters[]=2 
+0

這是解決方案。謝謝。我在這裏閱讀了一些問題,同樣的問題的解決方案是把一些[]。我想我不應該這樣做。 – user253530 2010-02-28 15:24:36

+0

哦,並查看'jQuery.param()'輔助函數(http://api.jquery.com/jQuery.param/) – Mottie 2010-02-28 17:34:44

0

使用此:

$.post("php/performSearch.php", { 
    keywords: $('#keywords').val(), 
    'filters\[\]': filtersArray}, 
    function(data){ 
     //alert(data); 
    }); 

或者試試這個太:

$.post("php/performSearch.php", { 
    keywords: $('#keywords').val(), 
    filters: filtersArray}, 
    function(data){ 
     //alert(data); 
    }); 

而在PHP獲取,不要使用[],只需使用:

$postedKeywords = $_POST['keywords']; 
$postedFilters = $_POST['filters'];