如何设置选中所有选中的复选框

时间:2015-05-11 16:34:06

标签: select checkbox

我有很多复选框。我希望当用户点击提交按钮时,他还没有填写所有必填字段,这些复选框已经检查过,要进行检查。我的代码如下,但是在表单提交时,只有最后一个复选框被删除。

 function teachers_show(yes, no){
        $(".toggle, .all_teachers_show,  .student, .school,  .teacher_school, .teacher, .class, .teacher_class").hide();
          if (no)
              $('.all_teachers_show').show();
          else
              $('.all_teachers_show').hide();
          $(":radio").prop('checked',false);
          $(yes).prop('checked',true);
      }
<?php
  
  echo validation_errors();
  echo "<div class='container' id='register_container'>";
  echo form_open('home/register');
echo "<table border = '0' >";
  echo "<tr><td><label>  Username:* </label></td><td>";
  $data=array(
    'name' => 'username',
    'class' => form_error('username') ? 'error' : '',
    'value' => set_value('username')
  );
  echo form_input($data);
  echo "</td></tr>";
echo "<tr><td><label> Password:* </label></td><td>";
  $data=array(
    'name' => 'password',
    'class' => form_error('password') ? 'error' : ''
  );
  echo form_password($data);
echo "<tr><td><label>  Choose role:* </label> </td><td>";
$selected_role = $this->input->post('role_id');  ?>
  <input type="radio" name="role_id" id="radio1" onclick="showHide(this, true)" value="1" 
  <?php echo '1' ==  $selected_role ? 'checked="checked"' : 
      '' ?>/>
      <?php  echo " Role 1"; ?>
      <input type="radio" name="role_id" id="radio2" onclick="showHide(this, true)" value="2" 
  <?php echo '2' ==  $selected_role ? 'checked="checked"' : 
      '' ?>/>
       <?php  echo " Role 2 "; ?>
      <input type="radio" name="role_id" id="radio5" onclick="teachers_show(this, true)" value="5" 
  <?php echo '5' ==  $selected_role ? 'checked="checked"' : 
      '' ?>/>
  <?php  echo " Role 3 "; 

  echo "</td></tr>";
 <?php
  echo "<tr class='all_teachers_show' style='display:none;'><td><label>  Teachers:*  </label></td><td>";
  ?>
 <table border='0'>
  <tr>
  <?php    
           $ind = 0;

           foreach ($all_teachers_show as $row) { 
           $ind++; 
?>
  <td>
  <?php $selected_teachers = $this->input->post('all_teachers_show[]');  echo $selected_teachers; ?>
  <input type="checkbox" id='all_teachers_show' <?php echo set_checkbox('all_teachers_show',$row->user_id); ?> name="all_teachers_show[]"
   value="<?= $row->user_id ?>" <?php if ( isset($selected_teachers[$row->user_id] )) 
    echo 'checked="checked"'; ?>><?= $row->first_name . ' ' . $row->last_name ?> <td>
      <?php 
      if($ind % 3 == 0)
       echo '</tr> <tr>';
} ?>
</table>
   <?php
   echo "</td></tr>";
  echo "</div>";
  echo "</table><br/>";
$data=array(
    "name" => 'mysubmit',
    'class' => 'btn btn-success ',
    'id' => 'reg',
    'value' => 'Register'
    
  );
  echo form_submit($data);
  ?>
  </form>

这是我的整个代码。这些chechboxes用于角色3 - 带有id ='radio5'的单选按钮。

怎么可能是我的:<?php echo $selected_teachers == $row->user_id ? 'checked="checked"' : '' ?>
 $selected_teachers - 它返回数组并将其与$row->user_id进行比较 怎么可能这样做?

1 个答案:

答案 0 :(得分:1)

试试这个:

<?php 
foreach ($all_teachers_show as $row)
{ 

    $userId = $row->user_id;
    $first_name = $row->first_name;
    $last_name = $row->last_name;
    $teacherSelected = ( isset($_POST[$userId]) ) ? true : false;

    ?>

        <td>
          <input 
                type="checkbox"
                class='all_teachers_show'  
                name="<?php echo $userId; ?>"
                <?php 
                    if ( $teacherSelected ) 
                        echo 'checked="checked"'; 
                ?>
                value="<?php echo $userId; ?>" 
            >
                <?php echo $first_name . ' ' . $last_name ?> 
        <td>
<?php
    }