Yupp Framework PHP

Helper ajax_link

El helper ajax_link tiene la misma funcionalidad que el helper link que sirve para generar links válidos dentro de una aplicación Yupp, pero con ajax_link el pedido es enviado mediante un request Ajax y el resultado debe ser procesado desde Javascript.

Para enviar el request Ajax se utiliza la libreria Prototype. El uso de este helper garantiza urls bien formadas, además inyecta todo el Javascript necesario para que funcione el pedido Ajax, siendo responsabilidad del usuario incluir la librería Protoype y la función para manejar la respuesta obtenida del servidor.

Los parámetros los recibe mediante un array asociativo por claves que son:
component
Nombre del componente donde está la acción que se quiere ejecutar. Es un parámetro opcional, si no se pasa, se toma el componente actual.
controller
Nombre del controlador que contiene la acción. Es un parámetro opcional, si no se pasa, se toma el controller actual.
action
Nombre de la acción a ejecutar. Es un parámetro obligatorio.
body
Es el texto que se muestra en el link. Es un parámetro obligatorio.
before
Nombre de la función Javascript que se invoca antes de enviar el pedido Ajax. (la debe implementar el usuario)
after
Nombre de la función Javascript que se invoca después de enviar el pedido Ajax. (la debe implementar el usuario)
Todos los parámetros extra a los mencionados antes, aparecen como parámetros en la url del link, por ejemplo si se hace la siguiente llamada:

<?php echo Helpers::ajax_link( array( "component"  => "blog",
                                      
"controller" => "comentario",
                                      
"action"     => "entradaBlog",
                                      
"id"         => $entrada->getId(),
                                      
"body"       => "Obtener comentarios por Ajax",
                                      
"after"      => "after_function",
                                      
"before"     => "before_function" )  ); ?>


Teniendo el siguiente Javascript:

<script type="text/javascript" src="/yupp_dir/js/prototype-1.6.0.2.js"></script>

<script type="text/javascript">
  var before_function = function(req, json) {
    alert("Cargando...");
  }
  var after_function = function(req, json) {
   
    if (!json) json = req.responseText.evalJSON();
    else       json = json.evalJSON();
     
    alert("Respuesta: " + json);
  }
</script>


Se genera el siguiente código HTML/JS:

<script type="text/javascript">
function ajax_link_0()
{
   new Ajax.Request('/yupp_dir/blog/entradaBlog/getCommentsJSON?id=1',
                    {
                     onLoading: before_function,
                     onSuccess: after_function
                    }
   );
}
</script>

<a href="javascript:ajax_link_0()" target="_self">Obtener comentarios por Ajax</a>

Por consultas o comentarios ir al grupo:
Grupos de Google
Suscribirte a Yupp Framework PHP
Correo electrónico:
Consultar este grupo