提交page.PHP后保持复选框的状态

时间:2013-12-04 13:16:29

标签: php

我希望页面在页面提交之前显示先前输入的数据。我为两个文本字段执行了此操作但不能执行复选框。在提交页面后保持复选框的状态。

      <?php 

         $params=$_POST;
         // param keys
         $pk = array('name','email','rating');
         foreach($pk as $param_name)
         {
               if(!isset($params[$param_name]))
               {
                     $params[$param_name] = '';
               }
         }
     ?>
     <html>
     <form method="POST">
             Name:<input type="text" name="name" value="<?php echo $params['name']; ?>" /><br/>
             Email:<input type="text" name="email" value="<?php echo $params['email']; ?>"/><br/>
             Rating:<?php if( isset( $params['rating'] ) && !empty( $params['rating'] ) ) { 
         $CH = count($params['rating']);
         for( $i=1; $i<=5; $i++ ) 
                 {
        if( $CH < $i) 
                    { ?>
            <input type="checkbox" name="rating[]" value="1">
              <?php }  else 
                    { ?>
            <input type="checkbox" name="rating[]" value="1" CHECKED>
              <?php }
        } 
         } else { 
            for( $i=1; $i<=5; $i++ ) {?>
        <input type="checkbox" name="rating[]" value="1" >
            <?php   }
        ?>
      </form>
      </html>

1 个答案:

答案 0 :(得分:0)

尝试类似:

<?php 
foreach(range(1, 5) as $rating){ 

    $checked = null;

    if( isset($_POST['rating']) && is_array($_POST['rating']) && in_array($rating, $_POST['rating']) ){
        $checked = ' checked';
    }
?>
    <input type="checkbox" name="rating[]" value="<?php echo $rating; ?>" <?php echo $checked; ?>>
<?php } ?>