提交表单后存储值 - 数组

时间:2013-06-07 09:39:48

标签: php arrays submit

我有一个这样的表格:

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

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

3 个答案:

答案 0 :(得分:1)

您需要使用value代码的<input>属性,类似于:

<input type="text" name="sth[0]" value="<?php echo $_POST['sth'][0]; ?>" />

答案 1 :(得分: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; ?>

答案 2 :(得分:0)

<?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']不为空,则输入值将是用户输入的值。