Как установить значения JFormField?

Я работаю над модулем Joomla, который имеет форму с настраиваемым полем, расширяющим класс JFormField.
Я хотел бы использовать эту форму для отображения записи в базе данных и позволить пользователю изменять сохраненные данные. Я создал настраиваемое поле для отображения списка на основе таблицы внешней базы данных. Все работает нормально, за исключением того, что я не могу предварительно установить значение настраиваемого поля для отображения значения в базе данных. Я попробовал два подхода, но ни один из них, похоже, не работает:

$ form-> setFieldAttribute (‘orderstatus’, ‘default’, ‘1’, $ group = null);

$ Форма-> SetValue ( ‘OrderStatus’, ‘главной’, ‘1’);

Любые рекомендации? Большое спасибо!


mod_gngtourdetails.php:

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

tourDetailsForm.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"
/>

orderstatus.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;

}
}

0

Решение

Первый метод должен работать, но должен быть

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

Другое дело, что вам лучше расширять JFormFieldList и, в частности, функцию getOptions ().

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]