我有一个典型的XML文件,其中有许多字段,例如
<field
type="custom"
name="city"
id="city"
label="City"
size="40"/>
在视图中我显示这个字段-一切正常。此外,我在这个字段上使用状态过滤。模型populateState ():
$filter = $app->input->get('city');
$this->setState('filter.city', $filter);
问题是,字段在表单提交后没有值(表单有get
方法)。我不能在value
字段写$this->getState('city')
之类的,因为这是xml文件。也许有人有解决办法……我在考虑JS,但主要是我想有一个PHP解决方案。
问题解决了!解决方案如下:1. 在jform数组中拥有所有字段的名称。如果您在xml中使用表单,它会自动生成。2. 当你加载表单数据,发送第二个参数为真:$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;
}
。
我不是100%清楚你在问什么,但如果你使用一个标准的JForm并插入它与这样的东西:
echo $this->form->getInput('articletext');
如果表单中的字段名不是city
,则更有可能是:
`jform[articletext]`
如果你可以添加更多的XML文件,这样我们就可以看到分组等和php
用来显示表单,我们可能可以帮助准确地确定它,如果你告诉我们你使用的是哪个版本的Joomla