使用隐藏字段和PHP设置文本框值

时间:2012-02-20 23:19:41

标签: php html hidden

当用户提交表单并且出现错误时,我希望他们输入的内容保留在文本框中,以便他们可以编辑它而不是重新键入它。我正在尝试使用隐藏字段来存储此值。

echo '<table><form method="post" action="" name="groupInvite"> 
      <tr><td>Event Title:</td><td> <input type="text" name="eventTitle" value = "'.$_POST['hiddenTitle']. '"></td><td>';
      $hiddenTitle = $_POST['eventTitle'];
      echo '<input type="hidden" name="hiddenTitle" value = "' .$hiddenTitle. '">';

1 个答案:

答案 0 :(得分:1)

此:

<input type="hidden" name="hiddenTitle" value = "'<? $_POST['eventTitle'] >?'">

应该是:

<input type="hidden" name="hiddenTitle" value="<?= $_POST['eventTitle'] ?>" />

<?=<? echo相同。你也把结束标签混淆了,你在双引号里面有单引号 - 我假设你不需要那些,所以我已经删除了它们,但如果你打算在文本框中显示那些你仍然可以添加它们。

上一个文本元素还需要<?=而不是<?


当您提交表单时,所有内容都保存在$ _POST数组中(假设您正在发布表单)。

在您的表单中,您有一个用户填写的文本框,然后提交。只有当它被提交时才会填充$ _POST数组,所以你需要做的就是:

<table><form method="post" action="" name="groupInvite">
<tr><td>Event Title:</td><td> <input type="text" name="eventTitle" value="<? if(isset($_POST['eventTitle']) && trim($_POST['eventTitle']) != ''){ echo $_POST['eventTitle']; } ?>"></td><td>

我们检查$_POST['eventTitle']是否存在(如果表单基本上已提交),并且它不是空的。如果是这种情况,我们将其内容回显到文本框的值。