我在序列化空数组输入时遇到问题。例如:
<input type="checkbox" name="test_checkbox[]" value="test" id="test">
<input type="checkbox" name="test_checkbox[]" value="test1" id="test1">
<input type="checkbox" name="test_checkbox[]" value="test2" id="test2">
如果没有检查这些并且我提交表单(通过POST),jQuery.serialize()会排除它们,它们不会出现在我的$ _POST /序列化字符串中。
但是我需要像test_checkbox = 0这样的东西,当没有勾选时。
我该怎么做?
答案 0 :(得分:0)
试试这种方式 的 DEMO 强>
<form id="testform">
<input type="checkbox" name="test_checkbox[0]" id="test" checked="checked" value="true"/>
<input type="checkbox" name="test_checkbox[1]" id="test1" checked="checked" value="true"/>
<span>click</span>
</form>
<强>脚本强>
$('span').click(function() {
var formDate = $('#testform').serialize();
console.log(formDate);
})
现在您想要这样看 DEMO
$('span').click(function() {
var str=$('form input:not([type="checkbox"])').serialize();
var str1=$("form input[type='checkbox']").map(function(){return this.name+"="+this.checked;}).get().join("&");
if(str1!="" && str!="") str+="&"+str1;
else str+=str1;
alert(str);
})
答案 1 :(得分:0)
只需将其插入您的服务器代码
即可$_POST['test_checkbox'] = isset($_POST['test_checkbox']) ? $_POST['test_checkbox'] : 0;
如果客户端没有设置$_POST['test_checkbox']
变量,则会将$_POST
变量设置为0。我建议使用新变量,而不是重置{{1}}中的条目。