====== Utilizando Ajax con Néfele ====== AJAX nos permite que nuestras web puedan enviar y recibir información a nuestro CGI sin volver a cargar toda la página, actualizando dinámicamente solo la parte de la página que queremos. Para ello debemos crear el [[controles:wBevel]] donde vamos a recibir la respuesta de nuestro CGI, y al control que haga la llamada le indicaremos en su propiedad [[propiedades:cAjaxBevel]] cuál es el [[propiedades:cId]] de dicho [[controles:wBevel]]. Si no indicamos nada en dicha propiedad no se realizará la consulta por AJAX lo que provocará la carga de una página nueva solo con el contenido de la respuesta de nuestro CGI. Nuestro CGI recibirá la llamada, pero no sabe si es por AJAX o no, lo ideal es que la función a la que llamamos este diseñada para dar un respuesta para AJAX. Y como lo hacemos, primero tenemos que tener en cuenta que solo crearemos el contenido que va en el [[controles:wBevel]] de respuesta, por lo tanto no crearemos ningún [[controles:TWebPage]], si vamos a enviar varios controles tendremos que encapsularlos en un [[controles:wBevel]] o en un [[controles:wPanel]], ya que será el Create() de este el que montara todo el HTML que devolveremos a la página web. Como es posible que no solo tengamos que enviar HTML, sino que haga falta código JS u otro código, utilizaremos el método [[metodos:FullHTML]] del contenedor para que nos lo agrupe todo en una cadena para la respuesta. En aquellos casos en los que la respuesta a una llamada por Ajax solo retorne código Script (JS o JQuery), podemos indicar en cAjaxBevel **nflcargo** que es un wBevel oculto que esta en todas las páginas generada con Néfele con dicho fín. ===== Código de uso ===== WITH OBJECT wForm():New( ) :lAutoComplete := .F. :cFunction := "ControlAcceso" WITH OBJECT WEdit():New( :__WithObject() ) :cId := "usuario" :cTitle := "Usuario" :cIcon := "person" :lAutoFocus := .T. :SetRequired() :Create() END WITH WITH OBJECT WEdit():New( :WO ) :cId := "password" :cTitle := "Password" :cIcon := "lock" :SetSubmit() :SetPassword() :SetRequired() :lSubmit := .T. :Create() END WITH WITH OBJECT WButton():New( :WO ) :cId := "submit" :cText := "Aceptar" :lSubmit := .T. :lLarge := .T. :lCenter := .T. :Create() END WITH :Create() cHtml := :FullHtml() END WITH oCgi:SendPageNoCache( cHtml ) ~~DISCUSSION|Utilizando Ajax con Néfele~~ {{tag>[nefele primeros-pasos]}}