<input name="q1[]" type="checkbox" value="a1">Used e-mail
<input name="q1[]" type="checkbox" value="a2">Used instant messenger & chat room
<input name="q1[]" type="checkbox" value="a3">Made a purchase for personal use
<input name="q1[]" type="checkbox" value="a4">Downloaded/Played a video game
<input name="q1[]" type="checkbox" value="a5">Obtained news/information
<input name="q1[]" type="checkbox" value="a6">Looked for employment
提交时我使用
$q1=implode(',', $_POST['q1']);
然后将其保存到mySQL DB中,如a1,a3,a5
我现在的问题是我有一个编辑页面,我知道如何使用文本框显示DB的值。我不知道如何选中正确的复选框。
我知道使用explode并从保存的值创建数组是件好事。我知道有一种PHP方式,但我发现这个代码用于下拉列表,它有助于不将php if语句发送到每个复选框。
<script type='text/javascript'>
window.onload = function(){
document.getElementsByName("year")[0].value="2008"; // change the value to the open obtained from database
}
</script>
如何为复选框执行此操作?非常感谢你
答案 0 :(得分:0)
您可以使用for
循环来复制您的复选框,并使用indexOf
检查数据库中是否存在该输入值:
window.onload = function(){
var dbdata = "a1,a3,a4"; //this should come from db
dbdata = dbdata.split(",");
for(i = 0; i<document.getElementsByName("q1[]").length;i++)
{
obj = document.getElementsByName("q1[]");
if(dbdata.indexOf(obj[i].value) > -1)
obj[i].checked=true;
}
}
这里的工作示例:JSFiddle