当用户提交表单并出现错误时,我希望他们键入的内容保留在文本框中,以便他们可以编辑它,而不是重新键入它。我正在尝试使用隐藏字段来存储此值。
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. '">';
这:
<input type="hidden" name="hiddenTitle" value = "'<? $_POST['eventTitle'] >?'">
应为:
<input type="hidden" name="hiddenTitle" value="<?= $_POST['eventTitle'] ?>" />
<?=
与<? echo
相同。你还混淆了结束标记,双引号中有单引号——我想你不需要这些,所以我删除了它们,但如果你想在文本框中显示这些,你仍然可以将它们添加回来。
前一个文本元素也需要<?=
而不是<?
提交表单后,所有内容都保存在$_POST数组中(假设您正在发布表单)。
在表单中,您有一个文本框,用户填写该文本框,然后提交。只有一次;s将填充$_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']
是否存在(如果表单基本上是提交的),并且它不是空的。如果是这样的话,我们将其内容回显到文本框的值中。