我有以下代码:
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文件中获取所有这些参数?
提前谢谢。
答案 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文件中轻松操作此数组。我希望这对外面的一些人有所帮助