Не могу заставить PHP заполнить код списка выбора в Joomla! BreezingForms для работы

Я использую точный фрагмент кода (шаг 1 простой версии) с этой страницы, размещенной разработчиками BreezingForms для Joomla!, измененный только для того, чтобы иметь правильные имена таблиц и полей, а также имя списка выбора в форме : http://crosstec.de/media/kunena/attachments/59203/BreezingFormsscriptdev.txt

Все, что я хочу сделать в BreezingForms, это заполнить список выбора полем «адрес» в качестве имени и «идентификатором здания» в качестве значения. Мне не нужны сценарии на шагах 2, 3 и т. д., потому что мне не нужно заполнять другие поля формы. Однако с этим кодом, вставленным в поле «Дополнительно» > «Параметры формы» > «Фрагменты формы» > «Перед формой», список выбора даже не отображается на странице с формой, см. здесь: http://catondesigngroup.com/websites/joooid/select-test/view/form.html

Метка поля формы «Список выбора» есть, но окно списка выбора не появляется. Не вижу причин, почему это не работает. Что здесь не так? Пожалуйста помоги!

Примечание. Я пропустил эти две строки кода, потому что мне не нужны имена пользователей или идентификаторы пользователей, однако попытка реализовать эти строки кода поможет любому:

$user = &JFactory::getUser(); // получить пользователя через JFactory $userid = $user->id; // вам может понадобиться использовать другое значение для этого или ничего

=========СТАРТ КОД=============

this->execPieceByName('ff_InitLib');

$rows = ff_select("SELECT buildingID, address
FROM ty43k_building_inspection");
$listdata = "0;Please make a selection;0\n";
for ($i = 0; $i < count($rows); $i++) {
$listdata .= "0;{$rows[$i]->address};{$rows[$i]->buildingID}\n";
}

ff_setSelectList('select1', $listdata);

function ff_setSelectList($name, $value) {
global $ff_processor;
for ($r = 0; $r < $ff_processor->rowcount; $r++) {
$row =& $ff_processor->rows[$r];
if ($row->name==$name)
$row->data2 = $value;
unset($row);
} // for

} // ff_setSelectList

========КОНЕЦ КОД=========


person Seth W. Caton    schedule 17.12.2012    source источник


Ответы (2)


Попробуйте добавить $ перед началом кода:

this->execPieceByName('ff_InitLib');

Чтоб результат был:

$this->execPieceByName('ff_InitLib');
person codacopia    schedule 13.02.2013

может быть, это потому, что вы используете функцию

ff_setSelectList('select1', $listdata);

до его определения?

Попробуйте переместить использование после определения:

function ff_setSelectList($name, $value) {
 global $ff_processor;
 for ($r = 0; $r < $ff_processor->rowcount; $r++) {
  $row =& $ff_processor->rows[$r];
  if ($row->name==$name)
   $row->data2 = $value;
  unset($row);
  } // for
} // ff_setSelectList

ff_setSelectList('select1', $listdata);
person Ilya    schedule 03.07.2018