После «логической» проблемы у меня есть контроллер с двумя действиями:
IndexAction: отображение формы поиска, внутри представления Script - это тег Div для отображения результатов поиска.
действие проверяет форму:
public function indexAction()
{
$searchForm = new My_Form_Search();
$statsService = new My_Service_Statistics();
if ($this->getRequest()->isPost()) {
if ($searchForm->isValid($this->getRequest()->getParams())) {
$this->_forward('ajax-do-search');
} else {
//???
// i want to display the errors
exit();
}
}
$this->view->search = $searchForm;
}
public function ajaxDoSearchAction()
{
$this->view->result = array();
$searchForm = new My_Form_Search();
if ($this->getRequest()->isPost()) {
if ($searchForm->isValid($this->getRequest()->getParams())) {
$query = $searchForm->getValue('search');
$search = new My_Service_Search();
$hits = $search->find($query);
// more...
}
}
}
Если она действительна, она перенаправляется в действие поиска, и представление отображается через Jquery.form в определенном div.
Но что делать, если серверпроверка стороны не удалась?без "выхода ();"действие index отображается внутри результата div.
Я думаю, что решение простое, но для большого количества кода сегодня :-)
Я знаю, что могу предотвратить это с помощью проверки на стороне клиента, но я добавляю php: -