Joomla 2.5 xml字段 - 在表单提交后存储值

时间:2014-06-24 13:50:12

标签: php joomla

我有一个典型的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解决方案。

2 个答案:

答案 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。