如何预设 JFormField 值?



我正在开发一个Joomla模块,该模块具有一个带有扩展JFormField类的自定义字段的表单。 我想使用此表单显示数据库记录并让用户修改保存的数据。我创建了自定义字段以显示基于外部数据库表的列表。一切正常,除了我无法预设自定义字段的值以显示数据库中的值。我尝试了两种方法,但似乎都不起作用:

1:

$form->setFieldAttribute('orderstatus', 'default', '1', $group = null(;

阿拉伯数字:

$form->setValue('orderstatus', 'main', '1'(;

有什么建议吗?多谢!

<小时 />

mod_gngtourdetails.php:

$filepath = dirname(__FILE__) . '/tourDetailsForm.xml'; 
$form=new JForm('mod_gngtourdetails');
$form->loadFile($filepath);
ModGngTourDetailsHelper::preFillForm($form, $tourDetails);

旅游详情表格.xml

<form>
<fields name="main">
<fieldset name="basic" addfieldpath="/modules/mod_gngtourdetails/models/fields">
<field
name="ID"
type="text"
label="ID"
description="ID"
size="10"
maxlenght="10"
/>
<field
name="orderstatus"
type="orderstatus"
label="Order Status"
description="Order Status"
/>

订单状态.php

class JFormFieldOrderStatus extends JFormField {
protected $type = 'orderstatus';
function getDB() {

...
return $db;
}

public function getInput() {


$db = JFormFieldOrderStatus::getDB(); 

$query = $db->getQuery(true);
$query->select($db->qn('ORDER_STATUS.NAME','NAME'));
$query->select($db->qn('ORDER_STATUS.ID','ID'));
$query->from($db->qn('ORDER_STATUS'));
$query->order('ORDER_STATUS.NAME ASC');
$rows = $db->setQuery($query)->loadObjectlist();

$result = '<select id="'.$this->id.'" name="'.$this->name.'">';

foreach($rows as $row){
$result .=  '<option value="' . $row->ID .'" >' . $row->NAME . '</option>'; 
}
$result .= '</select>';

return $result;

}
}

第一种方法应该有效,但应该是

$form->setFieldAttribute('orderstatus', 'default', '1', 'main');

另一件事是,你应该扩展JFormFieldList,特别是getOptions((函数。

相关内容

  • 没有找到相关文章

最新更新