setValue и Formit
есть сниппет getOrderStatus
<?php
$hook->setValue('status', "test");
return true;и есть чанк с формой[[!FormIt? &hooks=`getOrderStatus` ]]
<form action="[[~[[*id]]]]" method="post" enctype="multipart/form-data">
<input type="text" name="number" placeholder="заказ" value="[[!+fi.number]]"/>
<input type="text" name="status" id="status" value="[[+fi.status]]" />
<input type="submit" value="отправить "/>
</form>Что я делаю не так? Почему не могу установить value у поля status? Комментарии: 14
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Значит FormIt после удачного завершения своей работы и перезагрузки страницы удаляет значения плейсхолдеров, чтобы не показывать пользователю то, что он только что отправил (а показывает только при ошибках, что логично).
Вам надо копать в сторону того, чтобы формит не очищал свои плейсхолдеры после своей же работы. Читайте документацию к нему (ссылка выше), скорей всего там что-то по этому поводу есть.
Но если в форме ошибок нет, то FormIt этого НЕ ДЕЛАЕТ. Устанавливает только fi.successMessage и подобные плейхолдеры.
Если вам нужно подставить в форму значение из хука, то нужно установить плейсхолдер в MODX самостоятельно, т.е. хук должен выглядеть следующим образом:
Если в вызове FormIt указать 0, то значение очищаться не будут. Тогда можно ставить и через $hook->setValue()
А всего лишь надо было внимательно читать документацию! :-)