Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Sumo 24.01.2018 08:26 / 24.01.2018 11:49
Замените свою непрерывную последовательность операторов на логические части — функции. Вывод, проверка, обработка и возврат результата — это разные задачи, которые можно и нужно разнести по функциям.@main[][locals] ^try{ ^if(^request:method.lower[] eq "post"){ $lErrors[^validateForm[$form:fields]] ^if(!$lErrors){ ^processForm[$form:fields] ^redirectTo[/form/action/result] } } ^printForm[$form:fields;$lErrors] }{ ^if($exception.type eq "http.redirect"){ $exception.handled(true) $response:status[$exception.source] $response:location[$exception.comment] } } @redirectTo[aURL] ^throw[http.redirect;302;$aURL] @printForm[aData;aErrors] $aData[^hash::create[$aData]] $aErrors[^hash::create[$aErrors]] <form method="post"> <label class="^if(def $aErrors.field1){error}">Поле 1 <input type="text" name="field1" value="$aData.field1"> </label> ^if(def $aErrors.[field1]){ <p class="error-message">$aErrors.field1</p> } <input type="submit" /> </form> @validateForm[aFormData] $result[^hash::create[]] ^if(!def $aFormData.field1){ $result.field1[Заполните поле.] } @processForm[aFormData] ...