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

¿Cómo recoger valores de lista múltiple enviados con formulario multipart/form-data?

Estas en el tema de ¿Cómo recoger valores de lista múltiple enviados con formulario multipart/form-data? en el foro de ASP Clásico en Foros del Web. Saludos compañeros, tras mucho buscar en los foros no he encontrado solución a mí problema. A ver si alguien me puede ayudar: Para recoger valores ...
  #1 (permalink)  
Antiguo 04/02/2006, 14:13
Avatar de Seixas  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 60
Antigüedad: 20 años, 1 mes
Puntos: 0
Pregunta ¿Cómo recoger valores de lista múltiple enviados con formulario multipart/form-data?

Saludos compañeros,

tras mucho buscar en los foros no he encontrado solución a mí problema. A ver si alguien me puede ayudar:

Para recoger valores numéricos de un listado múltiple y asignarlos a una variable siempre lo he hecho de forma normal: variable = request.form("listadoMultiple") y me guardaba la información como "valor1, valor2, valor3, ..., valorN", es decir, los valores separados por coma.

Pero ahora estoy haciendo esto mismo desde un formulario multipart/form-data. He cambiado el Request.form por el Upload.Form, y el problema es que sólo me recoge el primer valor seleccionado en el listado. He probado de quitar el multipart/form-data del formulario y recoger el valor con Request.Form y entonces sí me recoge todos los valores, por lo que deduzco que el problema está en el multipart/form-data.

¿Alguien sabe cómo puedo recoger todos los valores y asignarlos a la variable en forma de cadena donde los valores estan separados por comas?

Yo he pensado que con un un For Each quizá se podría, pero no he hallado manera de declarar los objetos para que funcione.

Gracias por su atención y ayuda.
  #2 (permalink)  
Antiguo 05/02/2006, 14:27
Avatar de sabandija25  
Fecha de Ingreso: abril-2004
Mensajes: 302
Antigüedad: 20 años, 1 mes
Puntos: 0
re

porqué usas multipart/form-data?? tiene imágenes para subir el formulario?... si es así... que objeto usas para recoger los datos?...


saludos
  #3 (permalink)  
Antiguo 05/02/2006, 17:09
Avatar de Seixas  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 60
Antigüedad: 20 años, 1 mes
Puntos: 0
Gracias por responder

Sí, efectivamente. El formulario tiene un total de 5 imágenes, por eso uso el Multipart. Cuando preguntas por el objeto, supongo que te referirás al componente: uso ASPUpload.
  #4 (permalink)  
Antiguo 05/02/2006, 18:12
Avatar de sabandija25  
Fecha de Ingreso: abril-2004
Mensajes: 302
Antigüedad: 20 años, 1 mes
Puntos: 0
ok

Bueno si es aspupload el objeto, usa esto:

Código HTML:
Set Upload = Server.CreateObject("Persits.Upload")
Upload.Save
variable = Upload.Form("nombrevariable").Value
set Upload = nothing
nota el .Value cuando llamo a la variable.
puedes encontrar mas info en www.aspupload.com

saludos
  #5 (permalink)  
Antiguo 05/02/2006, 19:43
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
y porqué no usais xelupload? gratis, sin componentes....
  #6 (permalink)  
Antiguo 05/02/2006, 21:11
Avatar de sabandija25  
Fecha de Ingreso: abril-2004
Mensajes: 302
Antigüedad: 20 años, 1 mes
Puntos: 0
re

bueno, no es por meter la cuchara pero yo usaba xelupload hasta que en el hosting me permitian subir hasta 200kb por imagen(por defecto en windows 2003) y por eso tuve que hacer la conversion hacia aspupload(objeto que tenían instalado ahí)

  #7 (permalink)  
Antiguo 05/02/2006, 22:29
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
Pero en xelupload puedes ajustar el peso de los ficheros a subir.
  #8 (permalink)  
Antiguo 06/02/2006, 03:01
Avatar de Seixas  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 60
Antigüedad: 20 años, 1 mes
Puntos: 0
El código lo tengo como tú Sabandija25. Ejemplificaré mi problema porque creo que no me he explicado bien. El formulario funciona, y el objecto me recoje los valores de todos los campos, a excepción de los select múltiples.

Por ejemplo, tengo un select que es para elegir qué tipo de pavimentos puede tener un inmueble, y pueden ser varios. Entonces para seleccionarlos utilizo un select múltiple:

Código:
<select name="pavimentos" size=5 multiple>
<option value="1">Gres</option>
<option value="2" selected>Parket</option>
<option value="3" selected>Terrazo</option>
<option value="4">Rustico</option>
<option value="5">Porcelanato</option>
<option value="6">Cemento</option>
</select>
Tengo dos seleccionados, el de valor 2 y valor 3. Entonces envío el formulario correctamente, pero el objeto sólo me recoge el valor 2. Si hubiese seleccionado el valor 1 y el 2, sólo me recogería el 1.

Esto no me pasa si cambio el formulario para que sea normal (sin multipart), ya que me recogería ambos valores separados por comas: 2, 3.

¿Entonces, es culpa del objeto que utilizo?

No conozco xelUpload. Siempre he utilizado ASPUpload porque es el que tiene instalado todos los servidores con los que he trabajado, y es el que sé usar. Me gustaría encontrar la solución con ASPUpload. Me extrañaría que no se puediera hacer.

Gracias por la ayuda que me estais prestando.
  #9 (permalink)  
Antiguo 06/02/2006, 07:58
Avatar de sabandija25  
Fecha de Ingreso: abril-2004
Mensajes: 302
Antigüedad: 20 años, 1 mes
Puntos: 0
re

Cita:
Iniciado por trasgukabi
Pero en xelupload puedes ajustar el peso de los ficheros a subir.
Sí, es verdad... pero en mi caso igual lo tuve que cambiar porque las imagenes que se subían en mi sitio muchas veces sobrepasaban los 200kb y no podía redimensionarlas.

Seixas, acá encontré la solución:

http://support.persits.com/show.asp?code=PS01032617

Espero que te sirva
Saludos

Última edición por sabandija25; 06/02/2006 a las 08:38
  #10 (permalink)  
Antiguo 06/02/2006, 13:19
Avatar de Seixas  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 60
Antigüedad: 20 años, 1 mes
Puntos: 0
Muchísimas gracias sabandija25, esto es justo lo que necesitaba. Ahora sólo falta que haye el modo para formar la variable con los valores separados por comas, que no creo que tenga demasiado problema.

Saludos cordiales!
  #11 (permalink)  
Antiguo 06/02/2006, 15:49
Avatar de Seixas  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 60
Antigüedad: 20 años, 1 mes
Puntos: 0
De acuerdo Quedaría así

Bueno, ya lo he hecho y finalmente quedaría así:

Código:
  For Each Item in up_inmueble.Form
    If Item.Name = "pavimentos" Then
	  strPavimentos = Item.Value & "," & strPavimentos
	End If
  Next
  strPavimentos = Left( strPavimentos, (Len(strPavimentos)-1))
El left y el len lo que haría sería quitar la última "," de la variable, porque luego los datos guardados en la base de datos los recojo y transformo en vector con la función Split, y si dejo la última "," da error".

De nuevo, muchas gracias por la ayuda prestada.
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




La zona horaria es GMT -6. Ahora son las 20:43.