Foros del Web » Programando para Internet » ASP Clásico »

urjose y XaroD: me dan una ayudita?- lista seleccion multiple

Estas en el tema de urjose y XaroD: me dan una ayudita?- lista seleccion multiple en el foro de ASP Clásico en Foros del Web. Bueno chicos...he intentado esto una y otra y otra vez y no llego a una solución. Los hilos de los mensajes: http://www.forosdelweb.com/showthrea...threadid=77431 http://www.forosdelweb.com/showthrea...threadid=73873 se parecen ...
  #1 (permalink)  
Antiguo 26/12/2002, 14:49
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 6 meses
Puntos: 5
ayudenme :-( - lista seleccion multiple

Bueno chicos...he intentado esto una y otra y otra vez y no llego a una solución.

Los hilos de los mensajes:
http://www.forosdelweb.com/showthrea...threadid=77431
http://www.forosdelweb.com/showthrea...threadid=73873

se parecen a lo que quiero hacer, pero le doy vuelta y vuelta al asunto y no logro resolverlo aun.

Tengo mi lista de selección múltiple.
Son nombres, pero cada nombre tiene un ID.
Al seleccionar uno o mas nombres, me devuelve el ID. Eso funciona bien y lo despliego en la form y todo. El ID se llama menteeid cuando lo despliego. Cuando es uno, sólo me sale el numerito. Cuando son varios, hago el Request y está dividido por ,

Mi problema es...seguramente les ha pasado a muchos...que quiero hacer un UPDATE a esos hmm digamos tres ids que seleccioné.

Intenté usando el IN y todo, los valores los trae sí, pero me los está convirtiendo en varchar. O sea, cuando selecciono uno, me hace el UPDATE bien. Pero cuando selecciono dos o más nombres, me trae los valores sí, pero me aparece el mensajito ese de que estoy usando varchar para un tipo int...Revisé los tipos de datos...y no sé aun por qué.

urjose y XaroD, vi que pusieron uan solución...podrían darme una manita? Realmente me empiezo a frustrar
__________________
Yanira

Última edición por Yanix; 30/12/2002 a las 11:01
  #2 (permalink)  
Antiguo 26/12/2002, 15:09
 
Fecha de Ingreso: enero-2002
Ubicación: Yerba Buena - Tucumán
Mensajes: 259
Antigüedad: 22 años, 4 meses
Puntos: 0
Mensaje Respuesta

Lo que pasa es que como bien decis, cuando son muchos los items seleccionados el valor de tu SELECT deja de ser un solo valor y pasa a ser una colección. Por lo tanto para hacer un UPDATE tenés que ir recorriendo individualmente los valores de esa colección y hacer tantos UPDATES como items haya seleccionados.

Request.Form("tuselect").Count -> te dá el total de elementos seleccionados

Request.Form("tuselect").Item(subíndice) -> te dá el valor de un elemento particular

Prová con esto:

Primer archivo: prueba1.asp

<%@ Language=VBScript %>
<HTML>

<BODY>

<FORM name=a method=post action="prueba2.asp">
<select multiple name=q>
<option value="1">Uno</option>
<option value="2">Dos</option>
<option value="3">Tres</option>
</select>

<input type=submit name=sub>

</FORM>

</BODY>
</HTML>

Segundo archivo: prueba2.asp

<%
For i=1 to Cint(Request.Form("q").Count)
Response.Write(Request.Form("q").Item(i) & "<br>")
Next
%>

Espero que te sirva.

Saludos
  #3 (permalink)  
Antiguo 26/12/2002, 19:00
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 6 meses
Puntos: 5
Cabezota,

Muchisimas gracias por responder.

Jugare mañana con eso a ver si logro resolverlo. Aunque lo que quiero es hacer un update cada vez que tenga un articulo...seria por cada item en el loop.. Veré mañana cómo lo hago..porque ya hoy, no doy para más... :-0
__________________
Yanira

Última edición por Yanix; 26/12/2002 a las 19:03
  #4 (permalink)  
Antiguo 28/12/2002, 14:55
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 6 meses
Puntos: 5
No sé qué me pasa..pero no lo logro
Ayúdenme
__________________
Yanira
  #5 (permalink)  
Antiguo 30/12/2002, 11:45
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 4 meses
Puntos: 1
Y que es lo que no funciona?

Que error manda?

Mas datos...
  #6 (permalink)  
Antiguo 30/12/2002, 12:23
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 6 meses
Puntos: 5
No me actualiza

O sea...logro que me devuelva los valores...pero me los regresa en grupo...

Yo quiero actualizar cada uno de ellos. O sea..ponrle por ejemplo un set algo=2 a los valores que seleccione de mi lista. Y cuando someto el update con el IN lo que me esta haciendo es convirtiendomelo en varchar..y me que no puede actualizar una columna tipo int con ese varchar..pq lo esta tomando como (1, 3, 9)...y no como valor 1 y valor 3 y valor 9. Tengo que extraerlos de uno a uno y hacer la actualizacion..pero no la logro
__________________
Yanira

Última edición por Yanix; 30/12/2002 a las 12:34
  #7 (permalink)  
Antiguo 30/12/2002, 12:34
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 6 meses
Puntos: 0
lo ke tratas de decir es que estos datos te lo deja como varchar?

"1,4,5,7"

y al colocarlos en el in te lo toma como una sola cadena y no separadamente como deberia ser?
  #8 (permalink)  
Antiguo 30/12/2002, 12:36
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 6 meses
Puntos: 5
bankazipp eso mismitoooooooo!
Y yo quiero extraer los valores uno a uno...para hacerle el mismo update a cada uno en un campo.
__________________
Yanira
  #9 (permalink)  
Antiguo 30/12/2002, 12:48
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 4 meses
Puntos: 1
1.- Al actualizar cada uno de los registros le quieres meter el mismo valor en el mismo campo a cada uno de ellos?

2.- Si estas concatenando bien no tiene por que reconocertelos como varchar a menos que estes usando algo así ... where campo in('"&Request.Form("NombreCampo")&"')"

Si lo estas haciendo asi logico que te lo va a reconocer como varchar, debe ser así


... where campo in("&Request.Form("NombreCampo")&")"
  #10 (permalink)  
Antiguo 30/12/2002, 13:03
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 6 meses
Puntos: 5
Si..el mismo valor a cada uno de ellos.
O sea..tengo por ejemplo campoA, CampoB y CampoC

CampoA es un ID, CampoB es un nombre y CampoC es oto numero.

Tengo en mi lista de seleccion multiple el CampoB y me esta devolviendo el CampoA que es lo que quiero.
Y quiero actualizar esas filas en el CampoC...por ejemplo, set CampoC = 333 WHERE CampoA IN(1, 4 9, 11)
siendo el 1 , 4, 9, 11 correspondientes a los nombres que seleccione.
Eso va bien..o sea co un request obtengo los valores al seleccionar un nombre..pero no logro que me haga update porque me lo reconoce como varchar y no int..
Que sera?
__________________
Yanira
  #11 (permalink)  
Antiguo 30/12/2002, 13:16
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 4 meses
Puntos: 1
1.-Que error te manda? o Como sabes que te lo reconoce como varchar?
2.-Cual es tu código del Update?
  #12 (permalink)  
Antiguo 30/12/2002, 13:37
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 6 meses
Puntos: 5
Pq cuando lo hago..me sale este error:
Syntax error converting the varchar value '73, 67' to a column of data type int.
Este es el update:
"UPDATE soft.privates SET m_id = 2 WHERE empid IN ('"&Request.Form("personid")&"')"
__________________
Yanira
  #13 (permalink)  
Antiguo 30/12/2002, 13:37
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 6 meses
Puntos: 0
Si desde el request te envia estos valores.

request.form("variable")="1 , 4, 9, 11"

quizas te conviene meterlo a un split y como parametro de entrada le envias el arreglo con el subindice correspondiente

arreglo=split(request.form("variable"),",")

....
....set CampoC = 333 WHERE CampoA IN(arreglo(0), arreglo(1),arreglo(2), arreglo(3))

si lo quieres dinamico tendrias que hacer un for i=0 to ubound(arreglo) dentro del sql para que te modifique los valores guardados en el arreglo.
  #14 (permalink)  
Antiguo 30/12/2002, 13:39
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 6 meses
Puntos: 0
a todo esto urjose te dijo que le sacaras las doble comillas a tu update

Código:
"UPDATE soft.privates SET m_id = 2 WHERE empid IN ("&Request("personid")&")"
  #15 (permalink)  
Antiguo 30/12/2002, 13:41
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 4 meses
Puntos: 1
Cita:
Mensaje Original por urjose
1.- Al actualizar cada uno de los registros le quieres meter el mismo valor en el mismo campo a cada uno de ellos?

2.- Si estas concatenando bien no tiene por que reconocertelos como varchar a menos que estes usando algo así ... where campo in('"&Request.Form("NombreCampo")&"')"

Si lo estas haciendo asi logico que te lo va a reconocer como varchar, debe ser así


... where campo in("&Request.Form("NombreCampo")&")"

Cita:
Pq cuando lo hago..me sale este error:
Syntax error converting the varchar value '73, 67' to a column of data type int.
Este es el update:
"UPDATE soft.privates SET m_id = 2 WHERE empid IN ('"&Request.Form("personid")&"')"
  #16 (permalink)  
Antiguo 30/12/2002, 14:16
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 6 meses
Puntos: 5
Ya estoy feliz :-)

Listo!

bankazipp y urjose mua mua mua mua!


Muchisimas gracias.
No saben el apuro y lio del que me han sacado.

__________________
Yanira
  #17 (permalink)  
Antiguo 30/12/2002, 14:22
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 6 meses
Puntos: 0
Cita:
bankazipp y urjose
ey urjose a pesar de ke tu le diste en el clavo...yo figuro primero
  #18 (permalink)  
Antiguo 30/12/2002, 14:25
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 6 meses
Puntos: 5
Por order alfabético, eh
__________________
Yanira
  #19 (permalink)  
Antiguo 30/12/2002, 14:30
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 6 meses
Puntos: 0
MEJOR ME CASHO
  #20 (permalink)  
Antiguo 30/12/2002, 14:41
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 6 meses
Puntos: 5
bankazipp no...
En serio estoy muy agradecida por ustedes haberme ayudado.


Y Toma!

Ahora a seguir yo con mi mundo en javascript...
'ta luego
__________________
Yanira
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:21.