Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > HTML, Javascript y otros
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 04-02-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 22
keyboy Va por buen camino
Cita:
Empezado por lucasarts_18
me gustaría saber que diablos es obj (no se de donde sale y que representa)
No estoy seguro de entender cuál es la duda. obj es el nombre del parámetro y es totalmente arbitrario, nosotros lo escogemos al declarar la función. Igualmente pudimos usar objeto, param, parametro, etc. La única restricción es que ese mismo nombre lo usemos en el cuerpo de la función.

Tengo la impresión- aunque puedo equivocarme, desde luego -que la confusión viene de otra parte, y es que hay elementos que quizá no estén del todo claros.

Lo primero que hay que tener en cuenta es que en javascript se pueden crear objetos al vuelo, sin necesidad de un constructor. Por ejemplo, cuado ponemos

Código:
options =
{
  script: 'test.php',
  varname: 'input'
}
estamos creando un objeto "anónimo" que tiene dos propiedades: script y varname.

Otra cosa a saber, es que podemos asignar una función a una variable y usar dicha variable para invocar la función. Por ejemplo:

Código:
// declaramos una función
function saludar(mensaje)
{
  alert(mensaje);
}

// asignamos la función a una variable
s = saludar;

// invocamos la función a través de la variable:
s('hola mundo');
Pero, más interesante aún, es que podemos asignar a la variable directamente la implementación de la función:

Código:
// asignamos la función a una variable
s = function saludar(mensaje)
     {
       alert(mensaje);
     }

// invocamos la función através de la variable:
s('hola mundo');
sin tener que declararla previamente.

Pero no sólo a variables. También podemos asignar funciones a propiedades de un objeto, y ésta es- de hecho -la forma en que se crean métodos en javascript.

Así pues, cuando ponemos:

Código:
options =
{
  script: 'test.php',
  varname: 'input',
  callback: function(obj)
  {
    alert(obj.id);
  }
}
estamos creando un objeto con dos propiedades: script y varname, y un método, callback. El control AutoSuggest es quien internamente invoca a este método, pasándole como parámetro el objeto JS que corresponda a la opción seleccionada.

Tendría que examinar a detalle el código fuente del control para saber qué es exactamente lo que hace, pero bien puede ser algo similar esto:

El constructor:

Código:
function AutoSuggest(nombre, options)
{
  this.nombre = nombre;
  this.script = options.script;
  this.varname = options.varname;
  this.callback = options.callback;

  ...
}
Cuando escribimos algo en el control de edición asociado, el control AutoSuggest manda llamar al script que le indicamos para obtener elementos coincidentes. Dicho script regresa una lista en el formato que ya sabes. El AutoSuggest seguramente hace un "parsing" de esa lista y construye un objeto por cada elemento, por ejemplo:

Código:
this.results = Array();

this.results[0] =
{
  id: 1,
  info: '',
  value: 'Bastian'
}

this.results[1] =
{
  id: 2,
  info: '',
  value: 'Bartolomeo'
}

this.results[2] =
{
  id: 3,
  info: '',
  value: 'Castillo'
}
Cuando el usuario selecciona un elemento, el control determina a qué elemento de esta lista corresponde y ha de hacer algo como:

Código:
// si se asignó un callback...
if (this.callback)
{
  // ...invocarlo pasándole el objeto seleccionado como parámetro.
  this.callback(this.results[i]);
}
this.results[i] pasa a ser, entonces, el obj al que se refiere el cuerpo de la función.

Bye

Última edición por keyboy fecha: 04-02-2008 a las 21:50:51.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
AJAX+PHP+Forms papulo HTML, Javascript y otros 3 04-12-2007 18:37:18
CSS+Ajax halizia HTML, Javascript y otros 1 18-09-2007 08:47:58
php+ajax+ie halizia HTML, Javascript y otros 1 06-09-2007 13:47:00
Ajax dayrontbs HTML, Javascript y otros 0 29-08-2007 20:04:41
Stored procedures de donde puedo sacar ejemplos zugazua2001 Varios 2 04-07-2005 18:10:30


La franja horaria es GMT +2. Ahora son las 17:25:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi