当用户提交表单并且出现错误时,我希望他们输入的内容保留在文本框中,以便他们可以编辑它而不是重新键入它。我正在尝试使用隐藏字段来存储此值。
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. '">';
答案 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']
是否存在(如果表单基本上已提交),并且它不是空的。如果是这种情况,我们将其内容回显到文本框的值。