Trong Zend Framework có hỗ trợ bạn sử AjaxLink Helper , và bạn có thể sử dụng nó một cách dễ dàng.
Mình xin đưa ra một ví dụ đơn giản sử dụng ajax link với Zend Controller Action
Trước hết bạn cần có 1 Controller trước ( trong ví dụ này mình sử dụng Controller là AjaxController )
( Vấn đề setHelperPath thì bạn có thể tham khảo trên Zend Documents nha )
Sau đó bạn khai báo cho mình Action cần sử dụng :
Class AjaxController nhứ sau:
- Mã: Chọn tất cả
class AjaxController extends Zend_Controller_Action
{
public function init()
{
}
public indexAction()
{
//do somethings
}
}
Tiếp theo trong 1 trang nào đó bạn sử dụng ajaxLink helper của ZendX
ví dụ như mình khai báo như sau trong 1 trang nào đó ( chằng hạn index.phtml)
- Mã: Chọn tất cả
<?php echo $this->ajaxLink("Click",
$this->url(array('controller'=>'ajax','action'=>'index')),
array('noscript'=>true,'update'=>"#update")','method'=>'POST'), //#update chua noi dung goi nguoc lai tu server
array('id'=>1) //tham so ma ta muon goi di
); ?>
Nếu bạn làm theo cách này thì vẫn có thể thực hiện được , nhưng nếu page hiện tại của bạn có sử dụng layout thì nó sẽ render cả layout ngược trở lại.
Vì vậy chúng ta có thể disablelayout hoặc có thể sử dụng cách sau:
chúng ta sẽ khai báo lại function init() trong class AjaxController như sau :
- Mã: Chọn tất cả
public function init()
{
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('index','html')
->initContext();
}
khi đó bạn cần dặt lại tên cho file trong View/scripts/ajax/index.phtml thành View/scripts/ajax/index.ajax.phtml
và sửa lại ajaxLink như sau:
- Mã: Chọn tất cả
<?php echo $this->ajaxLink("Click",
$this->url(array('controller'=>'ajax','action'=>'index','format'=>'html')),
array('noscript'=>true,'update'=>"#update")','method'=>'POST'), //#update chua noi dung goi nguoc lai tu server
array('id'=>1) //tham so ma ta muon goi di
); ?>
Bây giờ bạn có thể test thử và xem kết quả

Chúc bạn thành công !
Có j sai mong bỏ qua !