0

いくつかのチェックボックスにjqueryがあり、PHPで複数の選択を取得できるように値をシリアル化しようとしています。

これが私のjqueryです:

<script type="text/javascript">
    jQuery(document).ready(function($) {
        $("input:checkbox").change(function() {
            if($(this).is(':checked')) 
            {
                    var color = $(this).val().serialize;
                    $(".itemMain").hide();
                    $(".indexMain").load('indexMain.php?color='+color);
            }
        });
    });
</script>

そしてここに私のPHP:

$color = $_GET['color'];

シリアル化を適用する前は、すべてが正常に機能していましたが、複数の選択を行うことができませんでした。現在、serialize() ではまったく機能しません。

助言がありますか?ありがとう!

4

2 に答える 2

1

私のために働いた別の解決策。

フィールドの名前属性で、他の用語で複数の値が必要であることを指定するだけです:配列

<form action="" method="post" id="filters_form"">
    <input id="fieldNameText" value="value0" name="fieldNameText" type="text">                                  
    <input type="checkbox" name="myFieldName[]" id="myFieldName" value="value1"/>
    <input type="checkbox" name="myFieldName[]" id="myFieldName" value="value2"/>
</form>

serialize() メソッドのvar dataString = $("#filters_form").serialize();結果は

fieldNameText=value0&myFieldName%5B%5D=value1&myFieldName%5B%5D=value2

これらのデータを AJAX を使用してポストに送信すると、これが php で取得されます。

アヤックス

$.ajax({
    type: "POST",
    url: "yourFormURL",
    data: dataString,
    success: function(response) {
        //do something
    }
});

PHP

print_r($_POST);

/* Output :
Array ( [fieldNameText] => value0 [myFieldName] => Array ( [0] => value1 [1] => value2 )) 
*/
于 2013-06-11T12:13:05.100 に答える
0

大まかな解決策は、各チェックボックスのクリックイベントで、その値をコンマ区切り形式の変数(または非表示の入力フィールド)に格納/追加し、この変数をカラークエリ文字列に渡すことです。

于 2012-08-06T06:50:58.140 に答える