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({
async: true,
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,