【问题标题】:jquery array of checkbox not sent to php file复选框的jQuery数组未发送到php文件
【发布时间】:2010-02-28 15:15:07
【问题描述】:

从复选框中收集值:

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['keywords'] 的值和 $_POST['filters'] 的数组,所以它被发送了,但由于某种原因我不能使用这些值。

【问题讨论】:

    标签: php javascript jquery ajax


    【解决方案1】:

    你试过了吗:

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

    这将发送一个可能如下所示的 POST 请求:

    filters[]=1&filters[]=2
    

    【讨论】:

    • 这就是解决方案。谢谢你。我在这里阅读了一些问题,相同问题的解决方案是放置一些 []。我想我不应该这样做。
    • 哦,看看 jQuery.param() 辅助函数 (api.jquery.com/jQuery.param)
    【解决方案2】:

    使用这个:

    $.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'];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-09
      • 2013-11-09
      • 1970-01-01
      • 2013-04-14
      • 1970-01-01
      • 2011-09-23
      • 2013-12-25
      • 1970-01-01
      相关资源
      最近更新 更多