YUI! y la conexiónes con bases de datos

Releyendo lo que puse en mi post anterior, me doy cuenta de que solo hable de como leer un archivo XML, pero jamas de como hacer la conexión.

En mi caso uso la YUI Library. El primer paso es cargar el modulo de conexión, lo cual se hace agregando la siguiente linea de html:

 
 
 
 
 

una vez cargado hacemos nuestra conexión a la BD. Si queremos usar el metodo GET para enviar los datos usariamos el siguiente codigo de Javascrit

 
 var URL = '/services/getSupervisores.php?param1=val1&param2=val2';
 
  var callback = {
    success: function (o)
    {
       result = explodeXML('nodo', new Array('menu','padre'), o.responseXML);
       ...
    },
    failure: function (o)
    {
       alert('Error en la conexion: Code ' + o.status );
    }
  }
 
  var request = YAHOO.util.Connect.asyncRequest('GET', URL , callback);
 

el mismo ejemplo, usando el metodo POST seria:

 
 var params = 'param1=val1&param2=val2';
 
 var URL    = '/services/getSupervisores.php';
 
  var callback = {
    success: function (o)
    {
       result = explodeXML('nodo', new Array('menu','padre'), o.responseXML);
       ...
    },
    failure: function (o)
    {
       alert('Error en la conexion: Code ' + o.status );
    }
  }
 
  var request = YAHOO.util.Connect.asyncRequest('POST', URL , callback, params );
 
 

Si observamos la DIFERENCIA radica en el cuarto parametro (params) usando en la funcion YAHOO.util.Connect.asyncRequest, donde se indican los parametros que deberan ser usandos por el archivo '/services/getSupervisores.php'. Ahora como diria Jack vamos por partes.

Callback


Callback es un objeto que cuenta con al menos dos metodos: failure y success. Estos metodos seran ejecutados de manera automatica por el objeto request, el cual se genera al ejecutarla la conexión a la base de datos. Si observamos ambos metodos reciben el parametro "o", el cual es un objeto HttpRequest, el cual tiene los siguientes campos:

  • o.tId, Identificador de la transaccion
  • o.status, El codigo de estado http que resulte de la transaccion
  • o.statusText, El mensaje asociado con el estado
  • o.getResponseHeader[id], el valor de la cadena especificada en el id
  • o.getAllResponseHeaders, Todos los codigos de respuesta que genero el HTTP
  • o.responseText, Cadena con la respuesta que dio el servidor
  • o.responseXML, Codigo XML generado en la respuesta del servidor
  • o.argument, Los argumentos definidos en el objeto callback

En nuestro objeto callback, definimos que en caso de que falle la conexión a la BD, genere una alerta que nos indique el codigo de error que se genero. En caso de que la conexión sea exitosa recuperamos los datos con la funcion explodeXML previamente vista.

XML y Javascript

En mi actual job SERVIFON nos hemos metido mucho a usar mucho Javascript y por ende AJAX, por lo cual empece a usar la libreria de Yahoo YUI. El modulo del conector esta bastante mono y regresa tanto una respuesta en texto o bien en XML.

Una de las cosas que son una patada en el trasero con el XML, es la forma de acceder a los datos. ej. si tenemos un XML con la siguiente estructura:

 
 
<menu>
  <nodo>
    <menu>1</menu>
    <padre>0</padre>
    <descripcion>RENTA</descripcion>
    <bactivo>1</bactivo>
  </nodo>
  <nodo>
    <menu>17</menu>
    <padre>0</padre>
    <descripcion>AMIGO</descripcion>
    <bactivo>1</bactivo>
  </nodo>
</menu>
 
la forma de accesarlo seria:

 
 var nodes = xmldoc.getElementsByTagName('nodo')
 for ( x= 0; x < nodes.length; x++)
 {
var menu =
     node.getElementsByTagName('menu')[0].firstChild.nodeValue;
 
var padre =
      node.getElementsByTagName('padre')[0].firstChild.nodeValue;
 
var descripcion =
      node.getElementsByTagName('descripcion')[0].firstChild.nodeValue;
 
var bActivo =
      node.getElementsByTagName('bActivo')[0].firstChild.nodeValue;
 }
 

Observaciones:
xmldoc es la respuesta XML a nuestro objeto XMLHttpRequest

en mi caso, como tengo que accesar varios XMLs mediante AJAX me hice una función que se llama explodeXML

 
function explodeXML ( xmltag, element, xmldoc )
{
  var container = new Array();
  var nodes = xmldoc.getElementsByTagName(xmltag);
 
    for ( xy = 0; xy < nodes.length; xy++)
    {
      var node  = nodes[xy];
      var ids = new Array();
      for ( yz=0; yz < element.length; yz++)
      {
        try { ids[element[yz]] = node.getElementsByTagName(element[yz])[0].firstChild.nodeValue; }
        catch (e) { ids[element[yz]] = null; }
      }
      container.push(ids);
    }
 
  return container;
}
 
y la forma de usarlo es:

 
var response = explodeXML('nodo',
    new Array('menu','descripcion','tipo','bActivo'),
     o.responseXML
);
 
 
con esto te devuelve un array que puede ser accesado:

 
alert(response[0]['menu'])
 
que mostrara una advertencia con el ID del primer menu que venia en el XML.


P.D. Disculpen mi redacción.. con el tiempo la mejorare face-smile.png

Te digo Adios..

Tenia tiempo que lo habia pensando.. que te habia dicho adios..
pero no lo hice, solo te bloquie en mi mente.. pense en olvidarte..
y me lo crei..

Hoy me doy cuenta, de cual es la razón.. el no decirte adios.. pero
es necesario.. debo de aprender.. debo de vivir y continuar sin tu
"presencia"

Por eso te digo.. Adios.. se feliz.. yo .. no lo intentare.. realmente lo hare!

Meme mailesco... Mi multa fue de $261

Na.. nada fuera de lo normal...

Pa que luego no digan.. jejej =D


--


Fumar marihuana -- $10.000
Viaje de ácido -- $5.000
Haber tenido sexo en una iglesia--$25.000
Despertar en la mañana y no saber el nombre de la persona que está al lado $40.000
Haber tenido sexo en el cyber espacio -- $25.000
Haber tenido sexo por dinero -- $100.000
Haber hecho daños en lugares públicos -- $20.000
Haber tenido sexo en la cama de papá y mamá -- $10.000
Haber golpeado a alguien -- $20.000
Haberse vestido como alguien del sexo opuesto -- $10.000
Haberle dado dinero a un(a) desnudista -- $25.000
Haberse enamorado del (la) desnudista -- $20.000
Haberse rumbeado a algún(a) desconocido(a) -- $5.000
Haberle 'echado los perros' a alguien del mismo
sexo en la oficina --$15.000
Haber manejado borracho -- $20.000
Haberse emborrachado en la oficina, o haber llegado borracho(a) a la oficina -- $50.000
Haber usado 'ayudas' o juguetes durante el sexo -- $30.000
Haberse caido de la borrachera y no recordar lo sucedido la noche anterior -- $20.000
Haber nadado desnudo -- $5.000
Haber tenido sexo en una piscina -- $20.000
Haber besado a alguien del mismo sexo $10.000
Haber tenido sexo con alguien del mismo sexo -- $20.000
Haberle 'puesto los cuernos' a su pareja -- $10.000
Habérselos puesto con un(a) amigo(a) o un(a) pariente -- $20.000
Haber tenido sexo oral -- $5.000
Haber recibido sexo oral -- $5.000
Haberlo hecho/recibido en un carro en marcha -- $25.000
Haberse robado algo -- $10.000
Haber hecho un video XXX casero -- $15.000
Haber hecho un trío -- $50.000
Haber tenido sexo al aire libre -- $20.000
Haber estado en el mismo cuarto mientras otros tenían sexo --$25.000 Haberse robado algo valioso-- $20.000
Haber tenido sexo con alguien 10 años mayor que uno -- $20.000
Haber tenido sexo con alguien de 21 o menos si uno tiene 27 o mas --$25.000
Haberse enamorado de dos o más personas a la vez -- $50.000
Haberle dicho a alguien que lo(a) amabas sin que fuera cierto -- $25.000
Haberse paseado desnudo(a) -- $5.000
Haberse paseado desnudo(a) en plena luz del día -- $15.000
Haber sido arrestado -- $5.000
Haberse hecho pipí en la piscina -- $1.000
Haber jugado Botella, la verdad o se atreve -- $5.000
Haber hecho algo de lo que se arrepienta -- $20.000
Haber tenido sexo con su mejor amigo(a)--$20.000
Haber tenido sexo con alguien en el trabajo -- $25.000
Haber tenido sexo anal --$80.000
Haberle mentido a tu pareja -- $5.000
Haberle mentido a tu pareja sobre lo bueno que fue el sexo que acababan de tener -- $25.000

y me voy, me voy y ....

Pues despues de los multiples cambios que tuve en el COBAEJ, donde pase de Jefe de Sistemas a subdirector de un plantel (en tlajomulco, 2 hrs de viaje). Decidi buscar otros aires, gracias a Dios la respuesta no tardo.. y pues ya estoy en SERVIFON.

Detalles de lo que hago aqui.. no puedo decir.. (la clausula de divulgación de información), pero tiene que ver mucho con software libre y creo que la posibilidad de crecimiento es mucha..

En otros asuntos.. me avente un sistema para la toma de desiciones en 15 días.. jejeje lo estoy depurando para poder titularme con el, hay cosas que no se como se pudieran mejorar.. pero con el tiempo dare con ellas..


Ahora.. es seguir avanzando..
Previous page 1 2 3 4 ... 12 Next page
56 entries
rss

Visitors Statistics

0
1
34071

Random Phoo Image

Random Phoo Image