Manuales de TuGa                                                                                                                      Página Principal

 

CONSULTAS USANDO AJAX

TuGa cuenta con funciones muy sencillas por medio de las cuales se pueden hacer consultas SQL usando Ajax.

En el repositorio de tablas de TuGa, existe la tabla tuga_ajaxsql la cual contiene la siguiente estructura:

CREATE TABLE tuga_ajaxsql (

  codigo SERIAL,

  sql TEXT NOT NULL,

  conexion INTEGER)

El campo codigo corresponde a la llave primaria de la tabla (este campo es autonumérico), sql corresponde a la sentencia sql que se va a ejecutar, conexión corresponde al código de la conexión de la base de datos en la cual se ejecutará el query (llave foránea de la tabla tuga_conexiones, cuando es nulo se hará la conexión con el repositorio de tablas de TuGa).

Supongamos una pantalla donde queremos que al digitar un numero de cedula en un campo, los otros campos llenen su información de forma automática. Los datos del formulario son los siguientes:

Nombre del formulario: Form167

Campos de texto: documento, recibimosde, direccion (en el campo documento es donde se va a digitar la cédula)

En la tabla tuga_sql tendríamos la siguiente información:

 

codigo: 5 (recuerde que esta es la llave primaria de la tabla)

sql:       SELECT nombre, nvls(direccion,'') as direccion FROM clientes WHERE cedula = '<<cedula>>'

conexion: 10 (recuerde que esto corresponde a la llave foránea de la tabla tuga_conexiones)

 

Para que este formulario funcione, lo que se debe hacer es programar por javascript de fin de página la siguiente función:

function prueba(){
    if(document.Form167.documento.value != ''){
        new Ajax.Request("../ajaxSQL", { method: "post", parameters: { _c:5,cedula:document.Form167.documento.value },
            onSuccess: function(transport,json){
            var jsonExpression = "(" + transport.responseText + ")";
            var customer = eval(jsonExpression);
            if(customer._tuga_ajaxsql_return_){
                 document.Form167.recibimosde.value = customer.nombre;
                 document.Form167.direccion.value = customer.direccion;
            }
          }
       });
    }
}

document.Form167.documento.onblur=prueba;

Esta función hace el llamado a la clase ajaxSQL con el parámetro _c  el cual corresponde a la llave primaria de la consulta que se va a ejecutar y el parámetro  cedula que corresponde al valor del campo documento dentro del formulario (en el ejemplo solo se envían dos parámetros pero pueden ser más). Tenga en cuenta que solo las instrucciones dentro del bloque onSuccess: function(transport,json){} se ejecutarán una vez los datos sean recibidos, lo que esté fuera del bloque se puede ejecutar en un tiempo diferente.

La validación marcada por el bloque if(customer._tuga_ajaxsql_return_){} se utiliza para verificar si efectivamente la consulta retorno información o no (verdadero o falso).

La última línea (document.Form167.documento.onblur=prueba;) asigna la función prueba al evento onblur del campo documento.