estoy intentando crear una bandeja de entrada de mensajes para una pequeña red social. Cada uno de los mensajes lleva un link al lado del estilo "Marcar como leido". Tras pulsar sobre el link el fondo del mensaje me gustaría que cambiase de color por ejemplo de gris a blanco.
Estos son los elementos con los que estoy trabajando:
- Una tabla MySQL "Mensaje" con tiene un campo llamado "Estado" (0: mensaje no leido, 1: mensaje leido).
- Dos reglas CSS (div.mensaje_0 y div.mensaje_1) que se diferencian en el color de fondo.
- Este codigo en la vista:
Código PHP:
<div class="mensaje_<?php echo (int)$mensaje->getEstado() ?>" id="mensaje_<?php echo $mensaje ?>">
Contenido mensaje
<?php echo link_to_remote('Marcar como leido', array(
'url' => 'mensaje/cambiarEstadoLeido?id='.$mensaje->getId(),
'update' => 'mensaje_'.$mensaje,
));
?>
</div>
Tras pulsar sobre el link "Marcar como leido" se ejecutan estas lineas que actulizan el estado del mensaje y :
Código PHP:
public function executeCambiarEstadoLeido(sfWebRequest $request)
{
$this->mensajes_usuario = Doctrine::getTable('Mensaje')->findById($request->getParameter('id'));
$this->mensajes_usuario[0]->setEstado(1);
}
Código HTML:
<div class="mensaje_1"> Contenido mensaje </div>
Podria quitar el padding del mensaje que queda "debajo", pero es una solución un poco chapucera.....
¿Alguien me ayuda? Quizas el helper que estoy usando sea demasiado restrictivo como para que me permita hacer lo que estoy intentado, o sea: no se corten en dar soluciones con AJAX en crudo!
Un saludo
Javi