创建多个复选框php

时间:2016-07-05 04:30:56

标签: php mysql checkbox

我正在尝试创建一个学生出勤表,其中包含每个学生出勤的复选框,该表将存储在数据库中。

这是我到目前为止的表,它是从ajax函数调用执行的。大多数数据来自包含学生姓名的数据库。

为了这个例子$numStudent = 5;

echo '<form method="post" action="checkAttend.php"> 
    <table border="1">';
$count = 1;

while(($count < $numStudent) && ($students = mysqli_fetch_assoc($result))) {
    echo '<tr>
        <th>' . $count. '</th>
        <th>' . $students['student_name'] . '</th>
        <th> <input type="checkbox" name="students[]" /> </th>
    </tr>';
    $count++;
}

echo '<th colspan = "3">
    <input type="submit" name="button" id="button" value="Submit" /> </th>';
echo '</table>';
echo '</form>';

checkAttend.php中,表单完全按照我需要的方式打印,但是当我尝试打印出复选框数组中的值时(在将其保存到数据库之前检查包含的值)每个值在数组中打印出来:

$student_attend[0]       A
$student_attend[1]       r
$student_attend[2]       r
$student_attend[3]       a
$student_attend[4]       y

通常我想在数据库的相应字段中存储某种值,以指示学生是否缺席。

我无法判断我是否正确执行了复选框循环,或者是否需要添加更多内容。

2 个答案:

答案 0 :(得分:1)

您需要循环遍历$student_attend数组,如下所示:

foreach ($student_attend as $value) { 
  // do something with $value
}

有关foreach here的更多信息。

答案 1 :(得分:0)

如果您想使用复选框添加动态数据,则可以按如下方式使用它: 在表单标签内,您可以使用

    <form method="post" action="checkAttend.php"> 
    <table border="1">
    <?php
    $count=1;
    while($students = mysqli_fetch_assoc($result)) {
     ?>
     <tr>
      <th><?php echo $count;?></th>
      <th><?php echo $student['student_name']; ?></th>
      <th><input type="checkbox" name="students[]" value=<?php echo $student['student_id']; ?>/></th>
     </tr>
     <?php
    }
    ?>
</table>
</form>

并在checkAttend.php页面中编写以下代码:

if(isset($_POST['button'])){
  if(count($_POST['student_id'])>0){
   foreach($_POST['student_id'] as $student_id){
    mysql_query("update table_name set column_name = '1' where student_id = '".$student_id.'"); 
    // Just use the student id as checkbox value and update it as you just need the check or uncheck the checkbox.  
   }
  }
}