提交前的PHP TextBox值

时间:2015-03-06 12:41:13

标签: php html concrete5

我正在Concrete5中构建一个注册表单,但事先我需要检索用户属性。

我正在使用隐藏输入来获取值:

<input type="hidden" name="akID[<?php echo UserAttributeKey::getByHandle('school')->getAttributeKeyID(); ?>][value]" value='<?php echo $_POST['full_name']; ?>'/>

但是,如果我事先犯了错误,即错误的确认密码然后重新提交表单,我只能获得该值。

有关如何在不执行此操作的情况下获取值的任何想法?

亲切的问候

1 个答案:

答案 0 :(得分:0)

你的例子有点令人困惑。

首先让我解释一下为什么它没有按你想要的方式工作。

您正在为隐藏字段提供$ _POST值。 $ _POST仅在您实际发布表单后才存在。因此,在首次加载页面时,$ _POST不存在,因此$ _POST [&#39; full_name&#39;]为空。 当您提交表单但是有错误时,同一页面重新加载,但这次$ _POST存在,因为页面在提交表单后重新加载。

这里有什么令人困惑的。如果重新加载$ ​​_POST [&#39; full_name&#39;]有值,则表示您已经拥有&#39; full_name&#39;字段可能作为文本输入框。为什么你想要一个具有完全相同值的隐藏字段?

如果你想在这个隐藏字段中想要的是用户属性的值,你需要做两件事: 1-确保用户已登录,否则没有可用的属性 2-获取用户信息对象以获取属性值,如下所示:

$u = new User();
$ui = UserInfo::getByID($u->getUserID());

2-修改隐藏字段的值,如下所示:

value="<?php echo $ui->getAttribute('attribute_handle'); ?>"