我有这样的表格:
<input type="text" name="sth[]" />
<input type="text" name="sth[]" />
<input type="text" name="sth[]" />
<input type="text" name="sth[]" />
提交后,我检查一些条件,当出现错误时,我想再次显示表单但带有已发布的值。我怎样才能填写这样的文件?
您将需要使用标签的value
属性<input>
,类似于:
<input type="text" name="sth[0]" value="<?php echo $_POST['sth'][0]; ?>" />
在您的 php 代码中,
<?php
$total_inputs = 4;
if (isset($_POST['sth'])) {
$sth = $_POST['sth']);
} else {
$sth = array_fill(0, $total_inputs, '');
}
?>
在您的 html 中,
<?php for ($i = 0; $i < $total_inputs, $i++): ?>
<input type="text" name="sth[<?php echo $i ?>]" value="<?php echo $sth[$i]?>" />
<?php endfor; ?>
<?php
$sth = array('','','','');
if(isset($_POST[sth]) && count($_POST['sth']) == 4) {
$sth = $_POST['sth'];
}
?>
<input type="text" name="sth[]" value="<?php echo $sth[0]; ?>"/>
<input type="text" name="sth[]" value="<?php echo $sth[1]; ?>"/>
<input type="text" name="sth[]" value="<?php echo $sth[2]; ?>"/>
<input type="text" name="sth[]" value="<?php echo $sth[3]; ?>"/>
$sth
此代码首先用一个包含四个空字符串的数组填充变量。然后它检查 是否$_POST['sth']
不为空且大小等于 4,如果是,则使用发布数据覆盖旧数组。将value="..."
设置当前输入字段的值。因此,如果$_POST['sth']
为空,则输入的值将是''
(空字符串)。但如果$_POST['sth']
不为空,则输入值将是用户输入的值。