Cambiar url navegador desde Ajax en cakePhp (location.hash)

 

cakephp

Cuando usamos Ajax,  y cargamos información, no se refresca nuestra url.
A veces nos interesa que si sea así, que nuestra url cambié.

Una manera sencilla de hacerlo en cakePhp

echo $ajax->link(
‘ver Usuario’,
array(‘controller’ => ‘User’, ‘action’ => ‘ver/’.$id),

array(‘update’ => ‘ver_usuario’, ‘complete’ => ‘window.location.hash = “usuario”‘)
);

Lo que tenemos en window.location.hash es lo que luego saldrá en nuestra url tipo:  http://localhost/user/ver#usuario

Enviar felicitaciones de navidad desde gmail

 

Emprendedor

Como programador, esto debería ser una tarea muy sencilla. diseñas un felicitación curiosa, y las envias por mail.

El problema viene cuando piensas. Habrá que meter la imagen en html, y crear un lista de correos, o enviarlo através de un programa de newsletters, nada de eso dejo los pasos a seguir para hacerlo de una manera sencilla desde gmail, gracias a mi amigo Antonio de Dandelium.

  1. Nos vamos Configuraciones generales de gmail, y en firmas añadimos la imágen desde un url ( antes tendrá que estar subida a tu web).
  2. Vamos a contactos de gmail.
  3. Generamos un nuevo grupo. Llámandolo “Navidad11″, por ejemplo.
  4. Seleccionamos todos los contactos a los que queremos enviar el correo.
  5. Cuando los tengamos seleccionado, arriba hay un botón llamado Grupos, selecionamos el nombre del grupo “Navidad11″.
  6. Vamos a crear correo, se añadirá directamente la firma con la imagen. Habilita el campo CCO (Con copia oculta) que está debajo de CC.
  7. Escribimos “Navidad11″.
  8. Y enviamos.

Por cierto Feliz Navidad y Feliz 2011

Formulario Ajax en Cakephp

 

cakephp

Algo que a veces queremos hacer, es al tener un formulario, ver los datos enviados desde el formulario si refrescar la página.
Un ejemplo de como hacerlo añadiendo un album, con un campo nombre.

Hay dos cosas a tener en cuenta, el envio del formulario es ajax, pero tambien el div donde cargaremos los resultados es ajax.

$content .= $this->Ajax->div('calendars');
foreach ($calendars as $calendar){
$content .=$interestDestination["InterestDestination"]["name"];
}
$content .=  $this->Ajax->divEnd('calendars');

$content .= $this->Ajax->form('/calendars', 'post', array('update' => 'calendars'));
$content .= $this->Form->input('name', array('label' => 'Agregar Nuevo Grupo:', 'error' => __('Nombre no valido', true)));
$content .= $this->Form->submit('Añadir',array('escape'=>false));
$content .= $this->Form->end();

return $content

Podemos ver que el update del form tiene el mismo nombre que le div Ajax, está observación es importante ya que el formulaior hace la llamada a este div, y esté div es el que se refrescará sin tener que refrescar toda la página.

En el controlador deberemos tener en cuenta, el añadir var $helpers = array(‘Ajax’);

Y también en la función en este caso “calendars” que ejecutamos desde nuestro formulario, deberemos hacer un render a la página donde se encuentra el mismo formulario.
Por ejemplo si nuestro formulario está en nuestro index $this->render(‘index’, ‘ajax’);