我希望页面在页面提交之前显示先前输入的数据。我为两个文本字段执行了此操作但不能执行复选框。在提交页面后保持复选框的状态。
<?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>
答案 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 } ?>