Objeto dictionary

Soy yo de nuevo.
Me he ido a mirar el tema de este objeto. Es muy interesante, la verdad, incluso creo que podría facilitarme la faena a la hora de trabajar no sólo con los nombres de los usuarios sino con sus mails como contraseña...¿verdad? Al contener la clave y su elemento podría ahorrarme el hacer dos Arrays coincidentes. Vale, pues ahí va mi pregunta:
Si utilizo el objeto dictionary y meto el mail como clave y el nombre del usuario como elemento, ¿cómo hago luego para llamar al elemento y que aparezca escrito en un document. Write, por ejemplo?
No sé si me explico. Pretendo que si el usuario se llama Pepe y su mail es [email protected] (porque, claro, como lo tengo ahora no es correcto, puede haber más de un usuario llamado Pepe,¿no?, cuando él introduzca sus datos y el sistema reconozca que está en la lista del objeto dictionary, ¿cómo hago para que en la página me aparezca escrito "Hola, Pepe...". Cómo llamaré a esa variable que (supongo) es su nombre?
Estoy hecha un lío... Cuanto más aprendo menos sé... :(
Respuesta
1
La verdad es que es un objeto muy curioso.
Vamos a ver cómo hacer eso que quieres:
Si guardas el mail en una variable de session, por ejemplo "usuario", y tienes un objeto dictionary llamado "diccionario", por ejemplo, la forma de sacar Pepe sería:
Diccionario. Item (Session("usuario"))
Si tienes diccionario como un objeto a nivel de aplicación no te haría falta guardar "Pepe" como una variable en concreto, ya que la puedes sacar del objeto cuando quieras, y al abandonar la sesión sólo hay que quitar al usuario del objeto diccionario.
Lo siento, pero no acabo de pillarlo...
A ver, yo creo el objeto dictionary así:
Set diccionario = CreateObject("Scripting.Dictionary")
y luego le doy valores:
diccionario[0].Add="pepe","[email protected]";
diccionario[1].Add="lola","[email protected]";
por ejemplo... no?
Luego recojo los datos del formulario:
usuario=document.registro.nik.value;
mail=document.registro.correo.value;
Y lo comparo con lo que tengo en el objeto diccionario... ¿pero cómo?
Thanks.
Me parece que lo quieres hacer en javascript y por desgracia el objeto dictionary está en principio sólo para vbscript. De todas formas te explico como hacerlo con el objeto y después cómo puedes hacerlo en javascript.
Para vbscript:
Por lo que me contabas quieres usar el mail como clave (me parece muy buena idea), pero para introducirlo tendrías que poner:
Diccionario.Add "[email protected]","pepe"
Diccionario.Add "[email protected]","lola"
El objeto dictionary sólo existe en vbscript (por desgracia).
Para comprobar el usuario tendrías que hacer lo siguiente:
if (diccionario.Exists(mail) and diccionario.Item(mail) = usuario) then
' Todo correcto
else
' Me está engañando
end if
Lo que haríamos sería, usando el mail como clave, sacar el elemento asociado que debe coincidir con usuario. Antes se realiza una comprobación porque si no el objeto lo que hará será crear una nueva entrada.
Esto serviría para asp en el servidor o para vbscript en el cliente.
Para javascript:
Se pueden usar los arrays de javascript. La idea sería la siguiente:
var diccionario = new Array();
diccionario["[email protected]"] = "pepe";
diccionario["[email protected]"] = "lola";
Para comprobar tendríamos lo siguiente:
if ("" + diccionario[mail] != "undefined" && diccionario[mail] == usuario)
{
// Todo correcto
}
else
{
// Me sigue engañando
}
Los arrays de javascript funcionan de forma parecida al objeto dictionary.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas