如何从mySQL检查编辑页面的正确复选框?

时间:2014-02-20 15:38:17

标签: javascript php mysql

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

如何为复选框执行此操作?非常感谢你

1 个答案:

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