serialize和param返回PHP和JQuery的问题

时间:2012-10-12 08:29:28

标签: php jquery parameters

我有以下代码:

    var data_str = $('form').serialize();
    alert(data_str);
    $("#SerializeTXT").text(data_str).show();
    $.ajax( {
        type: 'POST',
        url: 'test.php',
        data: data_str,
        success: function(data) {
            $('#result').html(data);
        }           
   });

这是我的test.php和结果:

<?php print_r($_POST);?>

在#result中我得到了

Array ( [itemIDhidden] => 2640 [SelectQt] => 1 [Bread] => Black Bread_0 [Cheese] => American_0 [Toppings] => Bacon_0 [Description] => TWSTE 3 45 T4 )

在SerializeTXT中我得到了

itemIDhidden=2640&SelectQt=1&Bread=Black+Bread_0&Cheese=American_0&Toppings=Sauteed+Mushrooms_0&Toppings=Fried+Onions_0&Toppings=Bacon_0&Description=TWSTE+3+45+T4

您可以看到帖子只获取多个所选元素的最后一个元素。在SerializeTXT div中,我得到了从表单中选择的内容。

任何想法以及如何在php文件中获取所有这些参数?

提前谢谢。

2 个答案:

答案 0 :(得分:3)

select元素的名称从Toppings更改为Toppings[]

<select name="Toppings" ...

<select name="Toppings[]" ...

然后$_POST['Toppings']将是一个数组。

答案 1 :(得分:0)

    var form = $('form');
    var data_str = '';
    form.find('input, select, textarea').each(function()
        {
            data_str += $(this).attr('name')+'='+$(this).val()+'&';
        });
    $.ajax( {
        type: 'POST',
        url: 'test.php',
        data: data_str,
        success: function(data) {
            $('#result').html(data);
        }           
   });
    };

test.php的 的print_r($ _ POST);返回

数组([itemIDhidden] =&gt; 2643 [SelectQt] =&gt; 1 [面包] =&gt;多粒Bun_0 [奶酪] =&gt; American_0,Swiss_0 [Toppings] =&gt; Fried Onions_0,Bacon_0,Raw Onion_0 [描述] =&gt; TEST TEST TEST [CancelItemForm] =&gt;取消[BasketItem] =&gt;确认)。

可以在PHP文件中轻松操作此数组。我希望这对外面的一些人有所帮助