不确定这个问题是否已在某个地方得到解答..已经搜索过它并发现了一些关于它的东西......但是因为我真的不明白我看到过的答案,而且可能因为我没有做出重大的混乱在使用这些语言方面经验丰富..
问题是我有一组5个复选框,我想在二进制输出中发布,例如:[0,0,1,1,0]。
到目前为止,我通过应用隐藏的输入解决方案来管理这个问题(我以更静态的方式描述了...因为我有很多来自数据库的东西,以及其他不能解释的东西对于这个问题..我认为)
$checkychecky = explode(",", [1,0,1,0,0] );
<input type="hidden" name="'.$row_perguntas[0].'[]" value="0"><input type="checkbox" onclick="this.previousSibling.value=1-this.previousSibling.value"'.$checked = ($checkychecky[0] == 1 ? "checked=\"checked\" " : "")/>'.$questionV[1].'
row_perguntas-&GT;来自db,它给我显示名称
checkychecky - &gt; temp var,用于存储值数组[1,0,1,0,0]
中存在的值questionV - &gt;数据库标签内容
这工作得很好..问题是当我前进到另一个表单,然后回到这个表单,我得到正确的arrray值,设法检查可见的复选框,但不知道什么到做隐藏的领域..因为tecnically它没有设置,我不按复选框..所以onclick没有开火..当我再次前进到下一个表格我结束提交[0,0,0,0,0]
我该如何解决这个问题?试图在隐藏的输入上使用.. checkychecky:
<input type="hidden" name="'.$row_perguntas[0].'[]" value="0"'.$value= ($checkychecky[0] == 1 ? "value=\"0\" " : "1")
但根本没有成功:(
有什么想法吗?感谢
答案 0 :(得分:0)
解决..
var checkBQ = ["c0q402","c1q402","c2q402","c3q402","c4q402","c0q408","c1q408","c2q408","c3q408","c4q408"];
var checkBQLength = checkBQ.length;
for (var i = 0; i < checkBQLength; i++) {
if(document.getElementById(checkBQ[i]).checked){
document.getElementById(checkBQ[i]).previousSibling.value = 1;
}else{
document.getElementById(checkBQ[i]).previousSibling.value = 0;
}
}