2012-02-20 90 views
0

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

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

而你的问题是......? – 2012-02-20 23:23:54

+0

你的问题是什么? ;) - 顺便说一句,你的代码不是有效的HTML。 – Zeta 2012-02-20 23:24:11

+0

我不知道我能做多少更清楚。当用户提交表单并出现错误时,我希望他们输入的内容保留在文本框中,以便他们可以编辑它而不是重新输入。 – user1104854 2012-02-20 23:27:49

回答

1

此:

<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']存在(如果表单已基本提交了),而且它的不是空的。如果是这种情况,我们会将它的内容回显到文本框的值中。

+0

所以我不能使用隐藏字段来做到这一点,或者我需要其他方式来维护文本框中的内容吗? – user1104854 2012-02-20 23:59:22

+0

我已经更新了答案,这是什么意思? – BenOfTheNorth 2012-02-21 00:06:09

+0

真棒工作!现在看起来很有意义,我想我刚开始并不明白。再次感谢! – user1104854 2012-02-21 00:14:07