Modx:FormIT选择从MySQL表加载值时不持久的字段

时间:2017-11-18 12:22:28

标签: php mysql modx formit

我知道formItIsSelected实用程序非常适合在表单(例如)由于某种原因无法验证时保留表单中的Select字段的值。但是当有人从MySQL中的表中填充选择字段时,有没有人试图使用它?这肯定比填充静态值的选择字段更有用..

我在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在这种情况下不起作用?

非常感谢

0 个答案:

没有答案