0

我有以下代码:

    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 文件中的所有这些参数?

先感谢您。

4

2 回答 2

3

select将元素的名称从更改ToppingsToppings[]

<select name="Toppings" ...

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

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

于 2012-10-12T08:31:54.763 回答
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); 返回

Array ( [itemIDhidden] => 2643 [SelectQt] => 1 [Bread] => Multi-Grain Bun_0 [Cheese] => American_0,Swiss_0 [Toppings] => Fried Onions_0,Bacon_0,Raw Onion_0 [Description] => TEST TEST测试 [CancelItemForm] => 取消 [BasketItem] => 确认)。

这个数组可以很容易地在 PHP 文件中操作。我希望这对外面的一些人有所帮助

于 2012-10-12T22:49:14.103 回答