Я пытаюсь добавить форму для запроса дополнительной информации на странице товара.Это простая форма с полями имени, страны, адреса электронной почты и вопроса.
Я создал этот учебник , но мне не нравится идея, что для маленькой формы мне нужно сделать новую модель и контроллер.
Итак, я добавляю форму в view.ctp
print $this->Form->create('', array('action' => 'sendemail'));
print $this->Form->input('name',array('label' => __('Name',true).':'));
print $this->Form->input('country',array('label' => __('Country',true).':'));
print $this->Form->input('email',array('label' => __('E-mail',true).':'));
print $this->Form->input('question',array('type' => 'textarea', 'label' => __('Your question',true).':'));
print $this->Form->end(__('Send', true));
и добавляю функцию sendemail
в products_controller.php
function sendemail(){
if(!empty($this->data)){
if($this->data['Product']['name'] && $this->data['Product']['country'] && $this->data['Product']['email'] && $this->data['Product']['question']){
// sending email
$this->Session->setFlash(__('Thanks, your qustion was send.', true), 'default', array('class' => 'message status'));
$this->redirect($this->referer());
} else {
// validation
$this->Session->setFlash(__('Fill all fiels', true), 'default', array('class' => 'message error'));
$this->redirect($this->referer());
}
} else {
$this->Session->setFlash(__('Error occurred', true), 'default', array('class' => 'message error'));
$this->redirect($this->referer());
}
}
Так есть ли способ как проверитьправильно ли заполнена форма, и если после перенаправления какое-то поле не заполняется, это поле будет установлено как ошибка ввода формы?Также, как я могу вернуть все уже заполненные поля обратно в форму?
Спасибо за любую помощь!