2010-08-15 81 views
1

如何在不重新加载页面的情况下提交Zend_Form - 使用Ajax?如何在不重新加载页面的情况下提交Zend_Form - 使用Ajax?

这是创建提交时的装载页面表单代码,应该是什么改变或增加,这种形式将与阿贾克斯(1.regular解决方案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

那么, 用于筛选/ val您可能希望使用Ajax发送表单,并且在服务器端知道这是一个Ajax请求(您可以使用标志作为标题,例如标题,搜索是否知道请求是否为ajax)以及发送只返回形式'区域'。然后当你收到它时,你可以覆盖它。

目前没有更明智的方式与Zend_Form做我想。

相关问题