提交表单后的存储值 - 数组



>我有这样的表格:

<input type="text" name="sth[]" />
<input type="text" name="sth[]" />
<input type="text" name="sth[]" />
<input type="text" name="sth[]" />

提交后,我检查了一些条件,当出现错误时,我想再次显示表格,但带有已发布的值。我怎样才能填写这样的文件?

您需要

使用 <input> 标签的 value 属性,如下所示:

<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,如果是,则用 post 数据覆盖旧数组。value="..."将设置当前输入字段的值。因此,如果$_POST['sth']为空,则输入的值将''(空字符串(。但是,如果$_POST['sth']不为空,则输入值将是用户输入的值。

最新更新