我在编写新的Joomla组件时遇到问题。 我的自定义joomla组件中有一些输入表单(/components\com_custom\views\myview\tmpl\default.php)
<input type="text" class="form-control" name="jform[checkindate]" id="checkindate" value="<?php if (isset($post)) {echo $post; } else { echo 'Checkin date'; }?>">
在课程中,顶部我有这个:
$jin = JFactory::getApplication()->input;
$post = $jin->get('checkindate', 'Checkin date', 'STR');
我的观点是,如果用户在验证过程中失败,请保留用户发布数据,这样他们就不需要重新输入所有表单,他们只需要修复一些错误数据才能再次提交,但是没有成功。 你能帮帮我吗? 非常感谢你!
答案 0 :(得分:0)
我假设您使用Joomla jform构建表单
在jform中,如果要维护表单会话,某些事情需要注意。
将提交的表单数据存储在会话中 - 在验证之后将用户重定向到表单视图。您需要将用户数据存储在用户状态。这通常在控制器文件中完成。这通过以下方式完成
$app = JFactory::getApplication();
$app->setUserState('componentname.formname.data', $data);
请注意,第一个参数是存储在用户状态的数据的密钥。第二个参数是用户的Jinput数据发布。
`
protected function loadFormData()
{
$data = JFactory::getApplication()->getUserState('componentname.formname.data', array());
if (empty($data))
{
// This is the my component function to load form data
$data = $this->getData();
}
return $data;
}
3。如果表单数据已成功保存,则不要忘记从会话中清除它。
$app->setUserState('componentname.formname.data', null);