我正在Concrete5中构建一个注册表单,但事先我需要检索用户属性。
我正在使用隐藏输入来获取值:
<input type="hidden" name="akID[<?php echo UserAttributeKey::getByHandle('school')->getAttributeKeyID(); ?>][value]" value='<?php echo $_POST['full_name']; ?>'/>
但是,如果我事先犯了错误,即错误的确认密码然后重新提交表单,我只能获得该值。
有关如何在不执行此操作的情况下获取值的任何想法?
亲切的问候
答案 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'); ?>"