В форме php при сбое проверки на стороне сервера необходимо получить введенные данные формы для отображения - PullRequest
0 голосов
/ 28 декабря 2011

У меня есть две формы, в которых данные из первой отправляются второй.

Перед отправкой данных первой формы во вторую форму они проверяются на сервере.

Данные первой формы содержат много информации, поэтому в случае сбоя проверки пользователю необходимо снова ввести все данные из-за небольшой ошибки.

Итак, есть ли какое-либо решение для предварительного заполнения формы данными о сбое проверки, чтобы пользователю было удобно просто заполнить отсутствующие данные?

Я использую PHP с MySQL в инфраструктуре ZEND и архитектуре MVC, но я не могу использовать Zend_Form.

Ответы [ 2 ]

0 голосов
/ 28 декабря 2011

Если вы используете класс Zend_Form, все данные должны автоматически заполняться после публикации запроса с ошибками в форме.Ниже пример кода:

$form = new CLASS_EXTENDING_ZEND_FORM;

if($this->getRequest()->isPost()) {
    if($form->isValid($this->getRequest()->getPost()) {
    }
}

$this->view->form = $form;
0 голосов
/ 28 декабря 2011
<?php
// your input will validate in the php in your own code then....
$good = 1;
foreach($_POST as $k => $v){
$$k = $v; // this will create variables for your submitted names to post back
if($$k==''){$$k = "needs an entry";$good=0;}
}

if(!$good){
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<input type=text name=demofieldname value='<?php echo $demofieldname ?>'>
- etc- 
</form>


<?php
}else{

//finish processing
}
?>

это простой метод. Существуют и другие способы, которые могут быть более интегрированными с существующим кодом, и в зависимости от вашего управления сеансом, ну, если вы продолжаете оформлять корзину покупок, как в мастере и т. д., все может стать более сложным.

Имейте в виду - здесь все просто, и если вы используете db, то это может быть сложнее в отношении связанных запросов.

=== РЕДАКТИРОВАТЬ ПРИМЕЧАНИЕ изменено, если ($ k == '') на if ($$ k == '')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...