Кнопка отправки всегда приводит к отправке формы, что обычно приводит к перезагрузке страницы независимо от того, верны ли данные в любом из элементов формы или нет.
Используя Zend Framework, выможет добавить в вашу форму событие JavaScript onsubmit
, которое может проверить элементы формы и решить, должна ли форма быть отправлена или нет.Или вы можете использовать Ajax для отправки формы, что не приведет к перезагрузке страницы.
Вот пример использования onsubmit
.Вы должны создать свою форму на контроллере, назначить ее представлению, а затем добавить в свой вид атрибут onsubmit
и соответствующий код.
view.phtml
<?php
$this->form->setAttrib('onsubmit', 'return checkForm()');
echo $this->form;
?>
<script type="text/javascript">
function checkForm()
{
if (form_passes_validation) {
return true; // form will submit
} else {
return false; // form will NOT submit (if javascript is enabled)
}
}
</script>
Youпридётся придумать логику для form_passes_validation
, но если onsubmit
вернет false, то форма не будет отправлена.
Имейте в виду, что PHP - это все стороны сервера.Вы не можете выполнить какую-либо обработку PHP, чтобы определить, должна ли форма отправляться, все это должно быть на стороне клиента, или вам придется жить с вашей формой, перезагружая страницу, даже если данные не введены.