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

Mostrar espacios en un select desde db

Estas en el tema de Mostrar espacios en un select desde db en el foro de ASP Clásico en Foros del Web. Hola... tengo un select que debe mostrar los registros de una db de access, el select lo hace bien, seleccionas un registro de los que ...
  #1 (permalink)  
Antiguo 27/09/2007, 10:49
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 18 años, 8 meses
Puntos: 0
Mostrar espacios en un select desde db

Hola... tengo un select que debe mostrar los registros de una db de access, el select lo hace bien, seleccionas un registro de los que muestra y te redirecciona a otra página, pero luego no muestra el valor del select porque son nombres y apellidos separados por espacios, ¿como puedo hacer que lo muestre?

Gracias
  #2 (permalink)  
Antiguo 27/09/2007, 10:53
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Re: Mostrar espacios en un select desde db

Sin ver código es muy difícil dar con la solución...
Pero se me ocurre preguntarte si el valor del atributo value del option lo tenés entrecomillado... es decir:

Código:
<select...>
<option value="<% = nombreYapellido %>"</option>
</select>
__________________
...___...
  #3 (permalink)  
Antiguo 27/09/2007, 12:33
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Mostrar espacios en un select desde db

Lo cierto es que el select es un poco más lioso que ese pero al efecto...

Aquí lo transquivo:
Código:
<select name=idBuzo SIZE="1" CLASS="fc_dateHover" 
onChange="location.href(incl_buzos.asp?idBuzo=' + formulario.idBuzo.options[formulario.idBuzo.selectedIndex].value)">
              
            <%
Set Conn = Server.CreateObject("ADODB.Connection")
espacios = Trim(Replace(Request.Form("Nombre"), "'", "''"))
Conn.Open = MM_cnx_salidas_STRING

 
SQL_socio="SELECT Nombre, idBuzo FROM Socios ORDER BY Nombre ASC"
set RS_socio=createobject("ADODB.Recordset")
RS_socio.open SQL_socio,conn

do while not RS_socio.eof
Nombre = RS_socio("Nombre")
idBuzo = RS_socio("idBuzo")
p = request.querystring("Nombre")
if p <> "" then
	if p = Nombre then
	response.write  "<option value="&idBuzo&" selected>"&Nombre&"</option>"
	elseif p <> Nombre then
	response.write  "<option value="&idBuzo&">"&Nombre&"</option>"
	end if
else
response.write  "<option value="&idBuzo&">"&Nombre&"</option>"
end if

RS_socio.movenext
	loop
RS_socio.close
Set RS_socio = Nothing
%>
          </select>

Última edición por Uefor; 27/09/2007 a las 13:59
  #4 (permalink)  
Antiguo 27/09/2007, 12:38
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Re: Mostrar espacios en un select desde db

Exactamente lo mismo que te dijo AZ( )

Código:
"<option value=""&idBuzo&"">"&Nombre&"</option>"
Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 27/09/2007, 12:46
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Mostrar espacios en un select desde db

Gracias por vuestros mensajes...
Le puse otro par de comillas pero creo que no es eso... lo que si probé fue a meter registros que solo tubieran un solo nombre (sin apellidos) y funciona perfectamente.

SaLu2
  #6 (permalink)  
Antiguo 27/09/2007, 12:50
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Re: Mostrar espacios en un select desde db

Puedes poner el codigo modificado y de ser posible la salida HTML de ese select?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 27/09/2007, 13:02
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Mostrar espacios en un select desde db

El código no lo he modificado solo le incluí las comillas en esta parte como me dijiste para probar:
Código:
if p = Nombre then
	response.write  "<option value=""&idBuzo&"" selected>"&Nombre&"</option>"
El resto sigue igual, lo de los registros es en la base de datos que metí uno con un solo nombre en vez de los tres habituales.

El HTML me devuelve esto:
Código:
 <select name=idBuzo SIZE="1" CLASS="fc_dateHover" 
onChange="location.href('pruebas_buzos.asp?idBuzo=' + formulario.idBuzo.options[formulario.idBuzo.selectedIndex].value)">
              
<option value=1></option>
<option value=34>ABELLAN DIAZ, BALTASAR</option>
<option value=134>ABELLAN NADAL, MIGUEL</option>
<option value=211>ALBA SOTO, ANTONIO</option>
<option value=214>ALBACETE MUÑOZ, JUAN JESUS</option>
<option value=191>ALCARAZ GOBITTA, SERGIO</option> etc.... </select>
(SON MAS DE 150 REGISTROS)

Última edición por Uefor; 27/09/2007 a las 13:58
  #8 (permalink)  
Antiguo 27/09/2007, 13:13
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Re: Mostrar espacios en un select desde db

Bueno....en primer lugar no veo donde estám las comillas dobles en los options, pero no importa (tanto) porque en realidad lo que estás enviando es el id, a pruebas_buzos.asp, así que el problema no se encuentra ahí, sino en donde recuperas los valores y los envías a procesar. Por favor proveé ese código.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 27/09/2007, 13:27
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Mostrar espacios en un select desde db

Tienes razón, no están las dobles comillas porque hice la prueba y las volví a quitar porque no cambiaba nada.

Pues el caso es que pruebas_buzo.asp es la misma página del select, las tenía separadas pero al ver el problema lo dejé así para resolverlo de manera más sencilla.

Si quieres te posteo el resto del formulario...
Código:
<form NAME="formulario">
  <p ALIGN="left"><font SIZE="1" COLOR="#004250"><b><u>&nbsp;Datos del buceador:</u></b></font><br>
          <br>
          <span CLASS="Estilo1"><font SIZE="1">&nbsp;&nbsp;</font><span CLASS="Estilo13" STYLE="font-weight: bold; font-size: 10px">Nombre:</span></span>
<select name=idBuzo SIZE="1" CLASS="fc_dateHover" 
onChange="location.href('pruebas_buzos.asp?idBuzo=' + formulario.idBuzo.options[formulario.idBuzo.selectedIndex].value)">
              
            <%
Set Conn = Server.CreateObject("ADODB.Connection")
espacios = Trim(Replace(Request.Form("Nombre"), "'", "''"))
Conn.Open = MM_cnx_salidas_STRING

SQL_socio="SELECT Nombre, idBuzo FROM Socios ORDER BY Nombre ASC"
set RS_socio=createobject("ADODB.Recordset")
RS_socio.open SQL_socio,conn

do while not RS_socio.eof
Nombre = RS_socio("Nombre")
idBuzo = RS_socio("idBuzo")
p = request.querystring("Nombre")
if p <> "" then
	if p = Nombre then
	response.write  "<option value=""&idBuzo&"" selected>"&Nombre&"</option>"
	elseif p <> Nombre then
	response.write  "<option value="&idBuzo&">"&Nombre&"</option>"
	end if
else
response.write  "<option value="&idBuzo&">"&Nombre&"</option>"
end if

RS_socio.movenext
	loop
RS_socio.close
Set RS_socio = Nothing
%>
          </select>
          <%
if request.querystring("idBuzo") <> "" then %>
          </span>
  <p> <font SIZE="1" COLOR="#004250"><b>N&ordm; Socio:
        <%
SQL_dat="select socio, DNI, TIT from Socios where idBuzo="&request.querystring("idBuzo")&" order by socio asc"
set RS_dat=createobject("ADODB.Recordset")
RS_dat.open SQL_dat,conn
do while not RS_dat.eof

idBuzo = request.querystring("idBuzo")
socio = RS_dat("socio")
DNI = RS_dat("DNI")
TIT = RS_dat("TIT")
%>
        <input NAME="socio" TYPE="text" CLASS="fc_dateHover" VALUE="<%=socio%>" SIZE="8" READONLY="true" />
&nbsp;&nbsp;DNI:      
        <input NAME="DNI" TYPE="text" CLASS="fc_dateHover" VALUE="<%=DNI%>" SIZE="13" READONLY="true" />
&nbsp;&nbsp;Titulaci&oacute;n:  </b></font>
          <input NAME="TIT" TYPE="text" CLASS="fc_dateHover" VALUE="<%=TIT%>" SIZE="25" READONLY="true" />
        <%
RS_dat.movenext
	loop
RS_dat.close
Set RS_dat = Nothing
%>
        </select>
        <% end if %>

      </form>

Última edición por Uefor; 28/09/2007 a las 00:20
  #10 (permalink)  
Antiguo 27/09/2007, 13:38
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Re: Mostrar espacios en un select desde db

Ok, la verdad es que ya me perdiste, puedes elaborar una vez más cuál es el problema y detallar que es lo que hace esa aplicación?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #11 (permalink)  
Antiguo 27/09/2007, 13:55
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Mostrar espacios en un select desde db

En teoría es algo sencillo... es como un select dependiente

En primer lugar se muestra el select, lo desplegamos para ver todos los registros del campo Nombre.

Seleccionamos uno, esto actualiza el formulario por el onChange y muestra el resto de campos que nos interesa del registro seleccionado en los input de más abajo y que de inicio no se ven.

El problema concreto es que cuando muestra los input con sus datos el select queda siempre con el primer registro porque los registros de este están compuestos por tres nombres separados por espacios
ejem: Pepe Anton Rodrigo

En el caso de subir un registro en la db que solo sea ejem: Pepe y lo seleccionamos si que lo muestra correctamente.

Digamos que me hace falta algo similar a la función trim para evitar errores con esos espacios pero no se como.
SaLu2

Última edición por Uefor; 27/09/2007 a las 14:00
  #12 (permalink)  
Antiguo 27/09/2007, 14:16
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Re: Mostrar espacios en un select desde db

Pues no, yo no veo el problema que describes, yo veo un error logico, basicamente esta variable no tiene ningun valior:

Código:
p = request.querystring("Nombre")
if p <> "" then
	if p = Nombre then
	response.write  "<option value=""&idBuzo&"" selected>"&Nombre&"</option>"
Yo no veo donde estas enviando una variable "nombre" por querystring...
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #13 (permalink)  
Antiguo 27/09/2007, 14:42
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Mostrar espacios en un select desde db

Pues lo cierto es que la quité y no tenía mucho sentido el estar ahí pero sigo con el problema.
He dejado el formulario pelado temporalmente accesible para que lo veas funcionando a ver si se te ocurre que puede ser:

Prueba aquí

SaLU2
  #14 (permalink)  
Antiguo 27/09/2007, 14:43
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Re: Mostrar espacios en un select desde db

Ya te dije que es...

P.D. No funciona en Firefox
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #15 (permalink)  
Antiguo 28/09/2007, 00:19
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Mostrar espacios en un select desde db

Perdona goldman, pero si me lo dijiste no encuentro donde... como he mencionado antes el código funciona bien cuando los nombres que hay en la base de datos no están separados por espacios.

¿Hay alguna manera de que interprete los espacios que recibe de la base de datos el html para que los inserte en el select?
SaLu2 y gracias
  #16 (permalink)  
Antiguo 28/09/2007, 04:34
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Mostrar espacios en un select desde db

Bueno en vista de lo que me está costando sacarle punta voy a recibir los datos con un campo de texto en vez de con el propio select y listo.

Gracias por vuestra ayuda en cualquier caso...
  #17 (permalink)  
Antiguo 28/09/2007, 08:32
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Re: Mostrar espacios en un select desde db

A ver Uefor, esta es la condicion que quedamos, estaba mal:

Código:
if p <> "" then
	if p = Nombre then
	response.write  "<option value=""&idBuzo&"" selected>"&Nombre&"</option>"
	elseif p <> Nombre then
	response.write  "<option value="&idBuzo&">"&Nombre&"</option>"
	end if
else
response.write  "<option value="&idBuzo&">"&Nombre&"</option>"
end if
Eso porque la variable p no tiene ningun valor, y porque lo que envias por querystring no es el nombre sino el id, trata cambiando la condición un poco:


Código:
if cstr(idBuzo) = Request.QueryString("idbuzo") then
    response.write  "<option value=""&idBuzo&"" selected>"&Nombre&"</option>"
else
    response.write  "<option value="&idBuzo&">"&Nombre&"</option>"
end if
Salud
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #18 (permalink)  
Antiguo 28/09/2007, 13:42
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Mostrar espacios en un select desde db

Muchas gracias goldman por tu interés... lo cierto es que finalmente lo adapté como he comentado recibiendo los datos con un campo de texto en una segunda página y me va a servir igual para el objetivo que buscaba.

Ahora se me plantea un problema un poco más enrevesado que este para la eliminación de registros, el código uso casi el mismo de base... un select dependiente que muestra una serie de registros y necesito poder borrar uno de ellos, pero no se como hacerlo ¿usando un checkbox por ejemplo?

Mejor abro otro post si acaso.
SaLu2
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 13:59.