Я знаю, что утилита formItIsSelected отлично работает, чтобы сохранить значение поля Select в форме, когда (например) форма не может быть проверена по какой-либо причине. Но кто-нибудь пытался использовать это, когда поле Select заполняет таблицу в MySQL? Это, безусловно, более полезно, чем поле Select, заполненное статическими значениями.
У меня есть форма на сайте modx, подключенная с помощью formit, и поле select в ней динамически извлекает значения из таблицы в MySQL. Если форма не может подтвердить это конкретное поле теряет значение, выбранное пользователем. Мое поле (в форме) имеет следующие настройки:
<select id="Field245" name="typeOfRelationship" class="field select medium" tabindex="4">[[!getRelationshipOptions? &selected=`[[!+fi.typeOfRelationship]]`]]</select>
и фрагмент, и который работает правильно, просто делает:
<?php if (!$modx->addPackage('contacts', MODX_CORE_PATH . 'components/contacts/model/')) {return 'Could not load xPDO model';}$current = $modx->getOption('selected', $scriptProperties, '');$output = [];$relationships= $modx->getCollection('RelationshipCodes');foreach ($relationships as $relationship) {$selected = $current == $relationship->get('codes') ? 'selected="selected' : '';$value=$relationship->get('descriptions');$output[] = '<option value="' . $relationship->get('descriptions') . '" ' . $selected . '>' . $relationship->get('descriptions') . '</option>';}return implode('', $output);
Все идет нормально. Но когда я заменяю строку $ output [] на:
$output[] = '<option value="' .$value . '" '. '[[!+fi.typeOfRelationship:FormItIsSelected=' ."'".$value. "'". $selected. ']]>' . $value . '</option>';
это не удается! Это не ошибка, но все же позволяет полю Select терять свои настройки, когда форма не проходит проверку. Вы видите проблему? Или, возможно, FormItIsSelected не работает в этом контексте?
Большое большое спасибо
Задача ещё не решена.
Других решений пока нет …