Javascript 动态检查数组中的复选框

Javascript 动态检查数组中的复选框,javascript,php,html,date,Javascript,Php,Html,Date,varchar mysql字段1,3,6中的给定数据 我有7个复选框用于星期一星期二星期三星期四星期五星期六 我已存储了需要检查的日期,但我希望显示所有未选中和已选中的框 因此,对于我的示例,输出将是SUN(checked)MON-TUE(checked)WED-THU-FRI(checked)SAT 这7个单词代表复选框。假设数据是varchar mysql字段1,3,6 我的代码部分有效,因为它只显示需要检查的第一天,而不显示其他日期。但是,它会显示未选中的复选框,这很好 这是我的密码: 顺

varchar mysql字段1,3,6中的给定数据

我有7个复选框用于星期一星期二星期三星期四星期五星期六 我已存储了需要检查的日期,但我希望显示所有未选中和已选中的框

因此,对于我的示例,输出将是SUN(checked)MON-TUE(checked)WED-THU-FRI(checked)SAT 这7个单词代表复选框。假设数据是varchar mysql字段1,3,6

我的代码部分有效,因为它只显示需要检查的第一天,而不显示其他日期。但是,它会显示未选中的复选框,这很好

这是我的密码: 顺便说一句,如果格式很奇怪,很抱歉!我是新来的

 <? php
  $RecurringDays = explode(",", $recur['weekday']);
 for ($i = 1; $i <= count($RecurringDays) - 1; $i++) {
     if ($RecurringDays[$i - 1] == "1") {
         echo "<td><input type='checkbox' name='0' id='0' checked='checked' />";
         echo "<label for='0'>Sun </label></td>";
         continue;
     } else {
         echo "<td><input type='checkbox' name='0' id='0' />";
         echo "<label for='0'>Sun </label></td>";
     }
     if ($RecurringDays[$i - 1] == "2") {
         echo "<td><input type='checkbox' name='1' id='1' checked='checked' />";
         echo "<label for='0'>Mon </label></td>";
         continue;
     } else {
         echo "<td><input type='checkbox' name='1' id='1'  />";
         echo "<label for='0'>Mon </label></td>";
     }
     if ($RecurringDays[$i - 1] == "3") {
         echo "<td><input type='checkbox' name='2' id='2' checked='checked' />";
         echo "<label for='0'>Tue </label></td>";
         continue;
     } else {
         echo "<td><input type='checkbox' name='2' id='2' />";
         echo "<label for='0'>Tue </label></td>";
     }
     if ($RecurringDays[$i - 1] == "4") {
         echo "<td><input type='checkbox' name='3' id='3' checked='checked' />";
         echo "<label for='0'>Wed </label></td>";
         continue;
     } else {
         echo "<td><input type='checkbox' name='3' id='3' />";
         echo "<label for='0'>Wed </label></td>";
     }

根据您的代码,您的代码将只回显varchar中的日期(因为它们在for循环中)。我建议进行以下编辑

<?php
//The days in the database
//$recurringDays = explode(",", $recur['weekday']); //expected an array(1,3,6) 
$recurringDays = array(1,3,6) ;
//The days in a the week    
$days = array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
for($i = 1; $i < 7; $i++ ){
    if(in_array($i,$recurringDays)){
     echo "<td><input type='checkbox' name='0' id='".$i."' checked='checked' />";
         } else {
             echo "<td><input type='checkbox' name='0' id='".$i."' />";             
         }
     echo "<label for='".$i."'>".$days[$i]." </label></td>";
    }

如果复选框和未选中框的区别只是“checked”属性,那么最好删除所有“ifs”并执行如下操作:和。。。为什么不使用数组并循环遍历它,而不是对每个值进行硬编码$ar=array('0'=>'Sun','1'=>'Mon'…)然后foreach($ar as$id=>$day)…好的,我有一个数组,我在数组中循环,我已经做了,我必须修复一些错误,但下面是工作代码//数据库中的天数$recurringDays=explode(“,,$recur['weekday]”)//需要一个数组(1,3,6)//一周中的天数$dayss=数组(“Sun”、“Mon”、“Tue”、“Wed”、“Thu”、“Fri”、“Sat”);对于($i=0;$i)