我有一个典型的XML文件,其中有很多字段,例如
<field
type="custom"
name="city"
id="city"
label="City"
size="40"/>
在视图中我显示这个字段 - 一切都很好。 此外,我在这个领域使用状态过滤。 model populateState():
$filter = $app->input->get('city');
$this->setState('filter.city', $filter);
问题是,字段在表单提交后没有值(表单有get
方法)。我无法在value
字段中写入$this->getState('city')
,因为它是xml文件。也许任何人都有解决方案......我在考虑JS,但主要是我想要一个PHP解决方案。
答案 0 :(得分:1)
问题解决了!
这是解决方案:
1.将所有字段命名为jform数组。如果您在xml中使用表单,它会自动生成。
2.当您加载表单数据时,请将第二个参数发送为true:$model->getForm('formName', true)
,因为第二个参数为$loadData
。通过此选项,Joomla将加载表单数据。
3.您有loadFormData
函数的加载数据:
protected function loadFormData() {
$data = JFactory::getApplication()->getUserStateFromRequest('jform', 'jform');
if (empty($data)) {
$data = $this->getItem();
}
return $data;
}
就是这样。
答案 1 :(得分:0)
我不是100%清楚你要问的是什么,但如果你正在使用标准的JForm并插入这样的东西:
echo $this->form->getInput('articletext');
表单中你的字段名称可能不是city
,它更可能是这样的:
`jform[articletext]`
如果你可以添加更多的XML文件,那么我们可以看到分组等,而php
用于显示表格,我们可以帮助确切地确定它,如果你告诉我们哪个版本它也会有所帮助你正在使用的Joomla。