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

另一个对我有用的解决方案。

只需在字段的 name 属性中指定您想要多个值的其他术语:数组

<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 回答