Как сделать Zend_Form без перезагрузки страницы - с помощью Ajax? - PullRequest
1 голос
/ 15 августа 2010

Как сделать отправку Zend_Form без перезагрузки страницы - с помощью Ajax?

Это код для создания формы, которая перезагружает страницу после отправки, что нужно изменить или добавить, что эта форма будет отправлена ​​с помощью ajax (1.регулярное решение 2.jquery решение):

Форма:

class Application_Form_Login extends Zend_Form
{
    public function init()
    {
       $username=new Zend_Form_Element_Text('username');
       $username ->addFilter('StringToLower')
                 ->addValidator('alnum');
       $password=new Zend_Form_Element_Text('password');
       $password->addFilter('StringToLower')
                ->addValidator('alnum');
       $submit=new Zend_Form_Element_Submit('submit');
       $this->addElements(array($username,$password,$submit));
    }
}

Контроллер:

$form = new Application_Form_Login();
        $request = $this->getRequest();
        if ($request->isPost()) {
            if ($form->isValid($request->getPost())) {
                if ($this->_process($form->getValues())) {
                    //code indside
                }
            }
        }
$this->view->form = $form;

Просмотр:

<?
echo $this->form;
?>


Мое предложение, которое я не считаю правильным (выполняет ли форма фильтрация и проверка?) Для Просмотр :

<?
echo $this->form;
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $('form').submit(function(){
      var sendData=$(this).serialize();
            $.ajax(
                        {
                           url:'',
                           dataType:'json',
                           type:'POST',
                           data:sendData,
                           success: function(data) {                   
                           }
                       });
         return false;
    });
});
</script>

Спасибо

1 Ответ

1 голос
/ 16 августа 2010

Ну, для фильтрации / проверки вы можете отправить форму с помощью Ajax и, зная на стороне сервера, что это Ajax-запрос (для этого можно использовать флаг, например, заголовок, найдите, является ли запрос ajax или нет). ) и отправив обратно только форму 'область'. Затем, когда вы получите его, вы можете перезаписать его.

Думаю, в настоящее время нет более разумного способа сделать это с Zend_Form.

...