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 I get

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要素の名前を からToppingsに変更しますToppings[]

<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 [パン] => マルチグレインバン_0 [チーズ] => アメリカン_0,スイス_0 [トッピング] => フライドオニオン_0,ベーコン_0,生オニオン_0 [説明] => TEST TEST TEST [CancelItemForm] => Cancel [BasketItem] => Confirm )。

この配列は、PHP ファイルで簡単に操作できます。これが外部の人々の一部に役立つことを願っています

于 2012-10-12T22:49:14.103 に答える