使用JForm类来操作字段 原
在Joomla中,已经实现了一套完整的表单机制。这套机制允许我们将一个在XML文件中定义的标准转换为HTML格式的表单。可以说这是Joomla CMS整个系统的精华所在。
简单的实例代码
// STEP 1 ://得到form对象 $formPath =JPATH_SITE . '/components/com_zmaxmsg/models/forms/'.$form.'.xml'; //表单XML的路径 $form = JForm::getInstance("com_zmaxmsg.".$form,$formPath,array('control' =>' jform' ,'load_data' => false ));
上面的代码就会加载前台$formPath这个路径下的XML文件,并且实例化一个JForm对象
当我们得到了这个form对象之后,就可以对表单中的字段(也就是XML文件中的结点进行操作)。一般常用的操作有:
设置字段的值。使用setValue方法来完成
public function setValue($name, $group = null, $value = null)
注意这个方法的第二参数是$group. 第三个参数才是我们需要设置的值。这个不要弄错了。一段典型的应用如下:
$catid = $params->get("catid"); $form->setValue("catid",'',$catid);
上面的代码首先从参数中获得设置的分类的值,然后将这个值更新到表单中,这样在前台输出的下拉列表就会自动选中我们后台设置的值。
设置字段的属性setFieldAttribute。(这个方法无法设置字段的值。)
$form->setFieldAttribute("catid",'type',"hidden");
上面的代码动态的将catid这个字段的类型设置为hidden.
在写本文之前,我一直尝试使用setFieldAttribute这个方法来设置字段的值,发现没有作用,因此在仔细的阅读源码,才发现设置字段的值应该使用setValue方法。以此备忘,希望对同样遇到这个问题的朋友有所帮助
更多关于JForm类
JForm类主要的功能是负责表单相关的问题。
具体的类实现文件可以参考http://www.joomlachina.cn/joomla/api/class-JForm.html
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。