Integrar Ajax en Zend Framework 2

Podemos utilizar Ajax en Zend Framework 2 de forma similar a como lo haríamos en otros frameworks. En Zend contamos con algunas funciones específicas para trabajar con Ajax. Veamos un ejemplo.

La vista que hará la petición AJAX al dar click a un botón.

<script>
$(document).ready(inicio);
function inicio(){
var x=$(".cargar");
x.click(cargar);
    function cargar(){
        $.ajax({
        async: true,
        type: "POST",
        url: "<?=$this->basePath("crud/usuariosajax")?>",
        success: function(datos){
            $("#usuarios").html(datos);
        }
        }); 
        return false;
    }

}
</script>
<h1>Probando AJAX con ZF2</h1>
<button class="cargar">Cargar</button>
<div id="usuarios"></div>

El controlador

public function usuariosAjaxAction(){
	/*Comprobamos si la petición es por AJAX 
	y si no lo es nos redirige a otra pagina*/
	if($this->request->isXmlHttpRequest()){

	   $this->dbAdapter=$this->getServiceLocator()->get('Zend\Db\Adapter');
	   $usuarios=new UsuariosModel($this->dbAdapter);
	   
	   //Llamamos a un metodo del modelo
	   $todos=$usuarios->listarTodos();
	   
	   //Cargamos la vista usuariosajax.phtml
	   $vista = new ViewModel(array(
		 'todos'=>$todos
			 ));
		/* Le indicamos que será una vista sin plantilla,
		es decir, no cargará todo el contenido de la plantilla
		sino que solo cargará los datos que imprima
		*/
		$vista->setTerminal(true);
		return $vista;
	}else{
		return $this->redirect()->toUrl($this->getRequest()->getBaseUrl());  
	}
}

La vista que vendrá por Ajax
Usuariosajax.phtml

<?php
var_dump($this->todos);
?>

Víctor Robles WEB

Autor: Victor

Desarrollador web - Formador online - Blogger

Compartir este post