Tema: Zf2 + ajax
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/09/2013, 15:17
Avatar de lcervantes
lcervantes
 
Fecha de Ingreso: abril-2002
Mensajes: 137
Antigüedad: 22 años, 8 meses
Puntos: 0
Información Respuesta: Zf2 + ajax

Hola.
Pongo la solución que he encontrado. No se si es la mas correcta, pero funciona.

Básicamente una acción de un controller llama a otra acción. Intentando montar ajax, cuando se ejecuta jqueryajx, solo llama a su respectivo action y no a todo, refrescando en el memento.


Controller
Código PHP:
public function indexAction(){ 
        
$viewModel = new ViewModel();
        
$viewModel->title 'Title'
        
$viewModel->Nombre "Nombre"
        
$viewModel->Apellido "Apellido"

        
$viewModelAjax $this->forward()->dispatch('Application\Controller\Index', array('action'=>'jqueryAjax'); 
        
$viewModel->addChild($viewModelAjax,'nombre_para_identificarle');

        return 
$viewModel;  


public function 
jqueryajaxAction(){ 
         
$viewModel = new ViewModel(); 
         
$viewModel->Nombre1 "Nombre AJAX"
         
$viewModel->Apellido1 "Apellido AJAX"
         
//$viewModel->setTerminal($this->getRequest()->isXmlHttpRequest()); 
         
return $viewModel
 } 
View
index.phtml
Código HTML:
<div> titulo</div>
echo $this->Nombre;
echo $this->Apellido1
echo $this->nombre_para_identificarle;

jqueryajax.phtml
Código PHP:
<script type="text/javascript">
      $(
document).ready(function() {
            $(
'#titulo').click(function(event) {
                    $.
ajax({
                            
asynctrue,
                            
type"GET",
                            
dataType"html",
                            
contentType'application/x-www-form-urlencoded',
                            
url"Http://URL.dominio.com/application/index/jaqueryajax',
                            data: "
param1=20",
                            beforeSend: function(data){
                              $('#zonadecarga').html("
Carregant.....");
                            },
                            success:function(data){
                              $('#zonadecarga').html(data);
                            },
                            error: function(requestData,strError,strTipoError){
                              alert("
Error:"+ strError + ":" + strTipoError);
                            }
                    });
            });
      });
</script> 
<div id="
titulo"/>TITULO AJAX</div>
<div id="
zonadecarga">
echo $this->Nombre1;
echo $this->Apellido1;
</div> 

Espero que os sirva.
Saludos,
__________________
LCervantes
--------------------------------------------
www.nerrots.es