我在一些复选框上有一个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()。
有什么建议吗?谢谢!
答案 0 :(得分: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
$.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 ))
*/
答案 1 :(得分:0)
粗略的解决方案是,在每个复选框的点击事件中,您可以以逗号分隔的形式将其值存储/附加到变量(或隐藏的输入字段)中,并将此变量传递给颜色查询字符串。