Utilizar otra vista para renderizar una acción

En cakePHP se busca por defecto para cada acción la vista que tenga su nombre. Pero podemos indicar que use una vista concreta. Por ejemplo podemos tener lo siguiente en el controlador:

 public function suma($a,$b){
 $this->set('resultado',$a+$b);
 $this->render('/Prueba/resultado');
 }

 public function mayor($a,$b){
 if ($a<$b) $a=$b;
 $this->set('resultado',$a);
 $this->render('/Prueba/resultado');
 }

Y la siguiente vista:

// archivo \Prueba\resultado.ctp

<h2>El resultado es <?=$resultado?></h2>

Controlador + vista en cakePHP

Creamos el controlador Prueba:

App::uses('AppController', 'Controller');

/**
 * CakePHP PruebaController
 * @author a4alumno
 */
class PruebaController extends AppController {

 public function index() {
 die("Hasta aquí hemos legado");
 }

 public function saludo($nombre,$apellidos="") {
 $this->set('nombre',$nombre);
 $this->set('apellidos',$apellidos);
 $this->set('nombrecompleto',$apellidos.", ".$nombre);
 }
 
 public function suma($a,$b){
 $this->set('suma',$a+$b);
 }

 public function mayor($a,$b){
 if ($a<$b) $a=$b;
 $this->set('mayor',$a);
 }
}

En el ejemplo anterior tenemos las acciones: saludo, suma y mayor. Necesitaríamos una vista para cada una de ellas:

//archivo en View\Prueba\saludo.ctp

<h2><?=$nombrecompleto?></h2>
<h1>Hola que tal?</h1>
<?php

echo $nombre." ".$apellidos;
//archivo en View\Prueba\suma.ctp

<h2>La suma es <?=$suma?></h2>
//archivo en View\Prueba\mayor.ctp

<h2>El mayor es <?=$mayor?></h2>

Ejemplos de Ajax

ejemplosAjax

Las función GET:

 function llamadaAjax(action) {
 var mail = document.getElementById("mail").value;
 var num = document.getElementById("numero").value;
 var miajax = new XMLHttpRequest();
 miajax.onreadystatechange = function () {
 if (miajax.readyState == 4 && miajax.status == 200) {
 document.getElementById('resultado').innerHTML = miajax.responseText;
 }
 }
 miajax.open('GET', 'test.php?num=' + num + '&mail=' + mail + "&action=" + action, true);
 miajax.send();
 }

La función POST:

  function llamadaAjaxPost() {
            var mail = document.getElementById("mail").value;
            var miajax = new XMLHttpRequest();
            miajax.onreadystatechange = function () {
                if (miajax.readyState == 4 && miajax.status == 200) {
                    document.getElementById('resultado').innerHTML = miajax.responseText;
                }
            }
            miajax.open('POSt', 'testpost.php', true);
            miajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            miajax.send("mail="+mail);
        }