Foros del Web » Programando para Internet » Javascript »

2 listbox y una busqueda

Estas en el tema de 2 listbox y una busqueda en el foro de Javascript en Foros del Web. Sres, a ver si me dan una manito con este tema. tengo una funcion que abre un asp dentro de un popup: <SCRIPT LANGUAGE="JavaScript"> <!-- ...
  #1 (permalink)  
Antiguo 03/11/2008, 19:03
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 3 meses
Puntos: 1
2 listbox y una busqueda

Sres, a ver si me dan una manito con este tema.

tengo una funcion que abre un asp dentro de un popup:

<SCRIPT LANGUAGE="JavaScript">
<!--
function popUp1(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,men ubar=0,resizable=0,width=610,height=700');");
}
// -->
</script>


y este codigo que pasa valores de un listbox a otro dentro de un form:

<script type="text/javascript">
function pasar() {
obj=document.getElementById('sel1');
if (obj.selectedIndex==-1) return;
valor=obj.value;
txt=obj.options[obj.selectedIndex].text;
obj.options[obj.selectedIndex]=null;
obj2=document.getElementById('sel2');
opc = new Option(txt,valor);
eval(obj2.options[obj2.options.length]=opc);
}
</script>

el form que contiene los listbox y que llena el sel1 es el siguiente:

response.write "<form method=post name=frmListarDoc action=''>"

set rstConsulta = Server.CreateObject("ADODB.Recordset")
sqlConsulta = "SELECT * from doc_ejec order by selDocumento"
rstConsulta.Open sqlConsulta, connstr,3,1

response.write "<select name=sel1 size=5>"


do while not rstConsulta.EOF
response.write "<option value="&rstConsulta("selDocumento")&">"& rstConsulta("selDocumento")&"</option>"
rstConsulta.MoveNext
Loop
rstConsulta.Close

response.write "<input type=button value='Enviar a Imprimir' onClick='pasar()'>"
response.write "<select id=sel2 size=5>"
response.write "</select><br><br>"
response.write "<td align=center bgcolor="&COLOR&"><a href=javascript:popUp1('notaCarpeta.asp')>Imprimir List</a></td>"
response.write "</form>"

La idea es pasar valores de sel1 a sel2 y luego pasarle a notasCarpetas.asp el contenido de sel2 como parametro. Pero aca hay 2 problemas:

1) no se como pasar el contenido de sel2 a notasCarpetas.asp (puede contener 1 o mas valores)

2) si logro pasar el contenido de sel2 necesito tener los valores separados como para poder hacer una busqueda en base para listar segun esos valores.

Esto es muy complicado de hacer?.

Saludos.
__________________
Carlunchos
  #2 (permalink)  
Antiguo 05/11/2008, 18:34
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 3 meses
Puntos: 1
Respuesta: 2 listbox y una busqueda

Parece que nadie me puede dar una mano con este tema. Dada las circunstancias, invoco a los sabios Tunait (primero las damas), Karlankas, Caricatos y JavierB (el orden es segun me iba acordando) para que puedan tirarme una idea para seguir trabajando ya que estoy trabado (diria Florencia de V) con este tema.


Saludos.
__________________
Carlunchos
  #3 (permalink)  
Antiguo 05/11/2008, 20:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: 2 listbox y una busqueda

No estoy entre los "invocados", pero bueno .

Me vienen a la mente tres opciones (yo optaría por alguna de las dos primeras):
1) Cambiar los selects por inputs type checkbox, con lo que el usuario seleccionará lo que quiera imprimir.
2) Si la opción anterior no es viable debido a la cantidad de elementos, usar un único select que permita seleccionar varias opciones.

La ventaja de usar alguna de estas dos opciones es que facilitan el trabajo ya que con un input type submit podemos enviar los valores al popup (Véase este excelente artículo por caricatos: Formularios y enlaces dirigidos a ventanas).

3) Mantener los dos list y usar una función Javascript para ir concatenando los valores y pasarlos por la URL.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 06/11/2008, 19:10
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 3 meses
Puntos: 1
Respuesta: 2 listbox y una busqueda

Hola David, gracias por responder. La verdad es que me atrae la segunda opcion que es la del select en el cual seleccionar varios items a la vez, pero ni idea como implementarlo y menos recibir en el popup el/los valores recibidos.
Vi el enlace que pusiste pero habla sobre como abrir correctamente una ventana pero nada de paso de variables.

Saludos.
__________________
Carlunchos
  #5 (permalink)  
Antiguo 06/11/2008, 20:48
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: 2 listbox y una busqueda

Solo necesitas tener un select multiple, algo como esto:
Código html:
Ver original
  1. <select name="opciones" multiple="multiple">
  2. <option value="1">Opción 1</option>
  3. <option value="2">Opción 2</option>
  4. <option value="3">Opción 3</option>
  5. <option value="4">Opción 4</option>
  6. <option value="5">Opción 5</option>
Con eso se crea una lista que permite seleccionar varias opciones. De modo que fácilmente al enviar el formulario al popup puedes recibir las opciones seleccionadas usando request.form y recorrer todos los elementos seleccionados con un For Each.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 10/11/2008, 16:34
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 3 meses
Puntos: 1
Respuesta: 2 listbox y una busqueda

Hola David, no sale y no se donde puede estar el error, el popup abre bien pero no envia el name del select. Pongo llo que trato de usar:


response.write "<form method=post name='frmDoc' action=''>"

set rstConsulta = Server.CreateObject("ADODB.Recordset")
sqlConsulta = "SELECT * from doc_ejec order by selDocumento"
rstConsulta.Open sqlConsulta, connstr,3,1

'response.write "<select name=sel1 size=5>"
response.write "<select multiple='multiple' name='sel1'>"
response.write "<option value=''>Seleccionar</option>"
do while not rstConsulta.EOF
response.write "<option value="&rstConsulta("selDocumento")&">"&rstConsult a("selDocumento")&"</option>"



rstConsulta.MoveNext
Loop
rstConsulta.Close

response.write "</select></td><br><br>"
response.write "<td align=center colspan=3><button onClick=popUp1('notaCarpetas.asp')>Mostrar Marcado</button></td>"
response.write "</form>"


En el popup el request.form("sel1") queda vacio.

Sugerencias?
__________________
Carlunchos
  #7 (permalink)  
Antiguo 10/11/2008, 16:57
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: 2 listbox y una busqueda

¿Podrías poner el código resultante?. O sea, ve a tu página, luego en le navegador, coloca "Ver Código Fuente", los atributos HTML es preferible que vayan entre comillas dobles(""), así como el value de los option que tampoco le pusiste las comillas.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 10/11/2008, 18:21
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 3 meses
Puntos: 1
Respuesta: 2 listbox y una busqueda

Aqui va lo que resulta al abrir el popup (notaCarpetas.asp):

<html>
<head>
<link rel="stylesheet" type="text/css" href="css/nota.css">

<script language="javascript">
function imprimirPagina() {
if (window.print)
window.print();
else
alert("A tu navegador no se le puede ordenar imprimir" + " desde la web. Actualizate o hazlo desde los menús");
}
</script>
<title></title>
</head>
<body>

<div id="central">
<br>
<img src="img\logo1.gif">
<font color=black>
<h4>Ciudades<br>
Carpetas</h4>
<br><br><br><br>
Mediante la presente se hace entrega de la/s carpeta/s que se detalla/n a continuación:
<br><br><br>
<form method=post name=frmNota action="notaCarpetas.asp?uo=">
Fecha de impresión: <select name="selFecha" size=1>
<option value="">Seleccionar</option>

</select>
&nbsp;&nbsp;
<input type=submit name=btnBuscar value="Mostrar">
</form>



<br>
<br><br><br>
............................<br>
Recibido por
<br>
<br>
<a href='javascript:imprimirPagina()'><strong>Imprimi r</strong></a></td>
</div>
<br>
</body>
</html>


No entendi lo de las comillas para los option.
Mientras estoy buscando respuestas en el foro y nada. Copio algunos ejemplos pero no logro pasar el contenido de sel1 (que es multiple).

Saludos.
__________________
Carlunchos
  #9 (permalink)  
Antiguo 10/11/2008, 18:28
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: 2 listbox y una busqueda

No, no me refería al código de notaCarpetas.asp, me refiero al código donde está sel1.

Lo de las comillas en los value de los option, me refería a:
Código asp:
Ver original
  1. Response.Write("<option value=" & Chr(34) & "valor" & Chr(34) & " >Opción</option>")
Chr(34) son las comillas dobles, claro, puedes escapar las comillas dobles con dobles comillas dobles ("") pero te puso de esa forma porque creo que es más fácil de entender qué quise decir.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 10/11/2008, 18:40
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 3 meses
Puntos: 1
Respuesta: 2 listbox y una busqueda

Bien, te paso la pagina que llama al popup:


<SCRIPT LANGUAGE="JavaScript">
<!--
function popUp1(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,men ubar=0,resizable=0,width=610,height=700');");
}
// -->
</script>

</head>


<body>
<%
response.write "<form method=post name='frmListarDoc' action=''>"

set rstConsulta = Server.CreateObject("ADODB.Recordset")
sqlConsulta = "SELECT * from doc_ejec order by selDocumento"
rstConsulta.Open sqlConsulta, connstr,3,1

'response.write "<select name=sel1 size=5>"
response.write "<select name='sel1' multiple>"
response.write "<option value=''>Seleccionar</option>"
do while not rstConsulta.EOF
response.write "<option value="&rstConsulta("selDocumento")&">"&rstConsult a("selDocumento")&"</option>"


rstConsulta.MoveNext
Loop
rstConsulta.Close
response.write "</select></td><br><br>"

response.write "<input type=text name=txtNombre size=10>"
response.write "<input type=hidden name=txtNombre value='"&txtNombre&"'>"

response.write "<td align=center colspan=3><button onClick=popUp1('notaCarpetas.asp')>Mostrar Marcado</button></td>"


response.write "</form>"



%>

</body>
__________________
Carlunchos
  #11 (permalink)  
Antiguo 10/11/2008, 18:46
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: 2 listbox y una busqueda

Hola, carlunchos, aún no modificaste lo de las comillas en los value de los option.

Y creo que no entendiste bien la parte en que dije, "ejecuta tu página, y en tu navegador ve a Ver Código Fuente, coloca ese código aquí". O sea, coloca el HTML resultante, no el código ASP.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 10/11/2008, 19:06
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 3 meses
Puntos: 1
Respuesta: 2 listbox y una busqueda

Dicen que la letra con sangre entra, asi que ahi va:


<body>
<form method=post name='frmListarDoc' action=''><select name='sel1' multiple><option value=''>Seleccionar</option><option value="406">406</option><option value="valor" >Opción</option><option value="406">406</option><option value="valor" >Opción</option><option value="420">420</option><option value="valor" >Opción</option><option value="424">424</option><option value="valor" >Opción</option><option value="587">587</option><option value="valor" >Opción</option><option value="607">607</option><option value="valor" >Opción</option><option value="666">666</option><option value="valor" >Opción</option><option value="777">777</option><option value="valor" >Opción</option><option value="802">802</option><option value="valor" >Opción</option><option value="806">806</option><option value="valor" >Opción</option><option value="809">809</option><option value="valor" >Opción</option><option value="812">812</option><option value="valor" >Opción</option><option value="840">840</option><option value="valor" >Opción</option><option value="864">864</option><option value="valor" >Opción</option><option value="864">864</option><option value="valor" >Opción</option><option value="928">928</option><option value="valor" >Opción</option><option value="928">928</option><option value="valor" >Opción</option><option value="3336">3336</option><option value="valor" >Opción</option><option value="4144">4144</option><option value="valor" >Opción</option><option value="4328">4328</option><option value="valor" >Opción</option><option value="4424">4424</option><option value="valor" >Opción</option><option value="4428">4428</option><option value="valor" >Opción</option><option value="4428">4428</option><option value="valor" >Opción</option></select></td><br><br><input type=text name=txtNombre size=10><input type=hidden name=txtNombre value=''><td align=center colspan=3><button onClick=popUp1('notaCarpetasACiudadela.asp')>Mostr ar Marcado</button></td>
<a href="notaCarpetas.asp" target="popup" onclick="window.open("", "popup", "")" > popup </a>
<br>
<a href="notaCarpetas.asp?txtNombre=" target="popup" onclick="window.open('', 'popup', 'width = 500, height = 500')">Mostrar</a>

</form>


</body>

Y puse lo que me indicaste (Chr(34)) en los options.
__________________
Carlunchos
  #13 (permalink)  
Antiguo 10/11/2008, 19:15
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: 2 listbox y una busqueda

Bien, pero aún no aplicaste lo que se comenta en este artículo y que te había mencionado en un mensaje anterior:
http://www.maestrosdelweb.com/editorial/formenlaces/

O sea, no usar un enlace, sino usar un input submit, y luego en el evento onsubmit del formulario abres el popup y en el target del formulario enlazas a esa ventana abierta.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 23:27.