Foros del Web » Programando para Internet » Javascript »

Mandar a otra página con un select.

Estas en el tema de Mandar a otra página con un select. en el foro de Javascript en Foros del Web. Hola. Estoy haciendo un Select, con varios options. Dos son fijos, y los demás se crean con un ciclo 'do while' que recorren fila por ...
  #1 (permalink)  
Antiguo 22/07/2009, 07:54
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Mandar a otra página con un select.

Hola.

Estoy haciendo un Select, con varios options. Dos son fijos, y los demás se crean con un ciclo 'do while' que recorren fila por fila una tabla de una BD. Entonces lo que quiero, es que cuando seleccionen alguno de los dos 'option' fijos me mande un pop, y que cuando yo de click en un boton en ese pop se cierre automáticamente y se me actualice la página principal.

Aquí las preguntas serían:

¿Cómo abrir ése pop up seleccionando alguna de las dos opciones fijas?
¿Cómo cerrar el pop al oprimir un botón dentro del mismo y que al mismo tiempo se actualice la página donde tengo el Select?

También tengo duda en otra cosa, lo anterior es para cuando seleccionan opciones fijas, pero cuando seleccionen una opción que se crea a partir de la BD, quiero que me mande a otra página, donde voy a llenar unos campos con valores de la BD.

Mi problema sería:

¿Cómo mandar a otra página al seleccionar una de las opciones de la BD-ésta vez no es un pop-?
¿Cómo identificar la opción que se eligió dentro del Select, para así poder tomar los datos correspondientes a esa opción?

Espero puedan ayudarme, y realmente les agradezco mucho su ayuda de antemano.

Saludos.

EDIT: Digamos que el Select estaría así:
Código PHP:
Ver original
  1. <select name="opcion" id="opcion" class="bodytext">
  2. <option value="agregar">Agregar</option>
  3. <option value="eliminar">Eliminar</option>
  4. <?php
  5.  
  6.   $query_Recordset = "select llave, descrip from opcion";
  7. $Recordset = mysql_query($query_Recordset, $conex) or die(mysql_error());
  8. $row_Recordset = mysql_fetch_assoc($Recordset);
  9. $totalRows_Recordset = mysql_num_rows($Recordset);
  10.  
  11. do{ ?>
  12. <option value="<?php echo $row_Recordset['llave']; ?>"><?php echo $row_Recordset['descrip'];?> </option>
  13. <?php }while($row_Recordset= mysql_fetch_assoc($Recordset)); ?>
  14. <?php
  15.  
  16.   $query_Recordset = "select llave, descrip from opcion2";
  17. $Recordset = mysql_query($query_Recordset, $conex) or die(mysql_error());
  18. $row_Recordset = mysql_fetch_assoc($Recordset);
  19. $totalRows_Recordset = mysql_num_rows($Recordset);
  20.  
  21. do{ ?>
  22. <option value="<?php echo $row_Recordset['llave']; ?>"><?php echo $row_Recordset['descrip'];?> </option>
  23. <?php }while($row_Recordset= mysql_fetch_assoc($Recordset)); ?>
  24. </select>
  #2 (permalink)  
Antiguo 22/07/2009, 08:04
Avatar de ACX_POISON  
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años
Puntos: 7
Respuesta: Mandar a otra página con un select.

mmm
lo primero me parece que debes realizarlo con javascript, tipo crear una funcion con window.open para abrir ventanas...
__________________
Me junto con los que Saben, Queriendo Saber.
  #3 (permalink)  
Antiguo 22/07/2009, 08:06
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Mandar a otra página con un select.

Exacto, lo que te dice ACX_POISON, luego , desde el popup, puede acceder a la ventana principal con window.opener
  #4 (permalink)  
Antiguo 22/07/2009, 08:20
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Mandar a otra página con un select.

Entonces, ¿todo se hace con JavaScript?

Saludos.
  #5 (permalink)  
Antiguo 22/07/2009, 08:29
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 4 meses
Puntos: 0
Busqueda Respuesta: Mandar a otra página con un select.

Amigo lo que necesitas es utilizar javascript

Para las ventanas emergentes debes usar
window.open()

a ver, en los select que quieres que "hagan algo" cuando cambien, debes poner el evento onChange con alguna funcion JS

te voy a poner un ejemplo para un select que abre un pop up

Código PHP:
<select name="perro" id="perro" onChange="abrirPopUp(this)">
   <
option value="1">1</option
   <
option value="2">2</option>
</
select>

<
script>
   
Funcion abrirPopUp(lista){
      var 
valor lista.value;
      
window.open('pagina_x.php?variable_valor='+valor,'nombre_ventana','parametros');
  }
</script> 
//Si seleccionas la opcion 1 del select , se deberia abrir la siguiente url
"pagina_x.php?variable_valor=1"

Por ahora intenta con eso ..encuentro que hiciste muchas preguntas juntas ... parte por entender esto y despues sigues..

Saludos
Domingo
  #6 (permalink)  
Antiguo 22/07/2009, 08:42
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Mandar a otra página con un select.

Gracias, eso es lo que estoy buscando. Me puse a editar tu código e hice algo así:

Código JavaScript:
Ver original
  1. <script>
  2.    Funcion abrirPopUp(lista){
  3.       var valor = lista.value;
  4.       if(valor=="agregar"){
  5.       window.open('agregar.php');
  6.       }
  7.       if(valor=="eliminar"){
  8.       window.open('eliminar.php');
  9.       }
  10.   }
  11. </script>

Pero no me funciona, ¿me podrías marcar el error?

Gracias de antemano.
  #7 (permalink)  
Antiguo 22/07/2009, 09:22
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Mandar a otra página con un select.

Código PHP:
<script
    function 
abrirPopUp(lista){      
        var 
valor lista.value;      
        
        if(
valor=="agregar"){      
            
window.open('agregar.php');      
        }      
        if(
valor=="eliminar"){      
            
window.open('eliminar.php');      
            }  
}
</script> 
Estaba mal escrito function ....
y como consejo ponle un opción vacia al select para que puede ejecutarse el onChange

Que quede por ejemplo asi

-- Opción --
Eliminar
Agregar

Ademas si quieres eliminar creo que deberia adjuntar a la url el codigo que quieres eliminar

Saludos
  #8 (permalink)  
Antiguo 22/07/2009, 10:06
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Mandar a otra página con un select.

Hehe es verdad, no noté ése error.

Esa parte ya está solucionada.
Supongamos que tengo así mi tabla en la BD:

Código PHP:
llave            descripcion         (campos)

25            descrip1
25            descrip1
25            descrip1
26            descrip2
26            descrip2 
¿Cómo hacer para que sólo tome en cuenta éstos valores:
Código PHP:
25            descrip1
26            descrip2 
En otras palabras, que sólo los tome en cuenta una vez, sin que los repita, por arriba puse un select que recorria todas las filas, pero no quiero que tome en cuenta filas repetidas. ¿Cómo podría hacer esto?

De nuevo les agradezco su ayuda.

Saludos.
  #9 (permalink)  
Antiguo 22/07/2009, 10:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Mandar a otra página con un select.

Tema trasladado desde PHP
  #10 (permalink)  
Antiguo 22/07/2009, 10:12
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Mandar a otra página con un select.

bueno si tienes los datos repetidos asi en tu BD estas muy mal ...jajajaj

lo que tienes que hacer es en la consulta sql poner despues del WHERE
la sentencia GROUP BY

Ejemplo

SELECT llave,descripcion
FROM tabla
Where algo = algo
GROUP BY llave,descripcion

Saludos
  #11 (permalink)  
Antiguo 22/07/2009, 10:54
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Mandar a otra página con un select.

No, lo que pasa es que hay otros campos en las filas, y ésos valores no se repiten, por eso tengo que poner varias veces la misma llave y descripcion. Intenté lo que me dijiste y funcionó a la perfección, gracias.

Ahora por ejemplo, al elegir la opción me abre el popup.

¿Cómo pasar el value de la opción elegida al popup?

Al momento de dar click a un botón, me gustaría que se cérrase ese pop y automáticamente se actualizara la página donde está el select ¿cómo haría ésto?

Otra cosa, sería por ejemplo los pops son sólo si elige la opción 'Agregar' o 'Eliminar' pero si elige una opción que se crea a partir de la BD, quiero que me mande a otra página -no un pop- y que me mande el 'value' de la opción que elegí ¿cómo se puede hacer esto?

Disculpen si me equivoqué de foro al pasarlo de PHP a JavaScript, pero estoy usando ambos lenguajes hehe.

Gracias de nuevo, saludos.

Última edición por Gaug; 22/07/2009 a las 11:53
  #12 (permalink)  
Antiguo 22/07/2009, 12:19
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Mandar a otra página con un select.

mira sabes que yo encuetro que es super bueno preguntar ... pero en sierto modo uno debe tratar de hacer las cosas con lo que sabes y aplicarle alguna mejora, lo que tu quieres hacer requiere cierto nivel de Javascript (algo basico) pero tienes que entender lo que son los parametros y como funciona el lenguaje JS ...

mira en este ejemplo se aplica un 80 % de lo que necesitas

Código PHP:
<select name="perro" id="perro" onChange="abrirPopUp(this)"
   <
option value="1">1</option>  
   <
option value="2">2</option
</
select

<
script
   
Funcion abrirPopUp(lista){ 
      var 
valor lista.value
      
window.open('pagina_x.php?variable_valor='+valor,'nombre_ventana','parametros'); 
  } 
</script> 
Ahora para cerrar la ventana
se usa
window.close()

Si quieres recargar la ventana madre se usa window.parent.refresh() o algo asi..no estoy seguro 100%

si quieres pasar parametros o como tu dices pasar el nuevo ID y esas cosas, eso es uso basico de funciones como en cualquier lenguaje...

para sacar el valor de una lista puedes ocupar

document.getElementById('nombre de la lista').value

Eso en lo que te puedo ayudar por el momento ... creo que tienes muchas dudas juntas .. y lo que necesitas es que te hagan el programa ... asi que prueba y pregunta cosas mas precisas

Todo en buena onda

Saludos
Domingo
  #13 (permalink)  
Antiguo 22/07/2009, 16:03
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Mandar a otra página con un select.

Agradezco tu ayuda, pero por ejemplo, ¿cómo sería para recibir las variables en el pop?

Y bueno, estaba buscando la manera para que si elegía alguna otra opción, me mandara a otra página al hacer click, como si fuera un form, pero con el window.open() sólo me abre pops, ¿alguna idea para esto?

Gracias de antemano, saludos.
  #14 (permalink)  
Antiguo 23/07/2009, 07:38
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Mandar a otra página con un select.

Revivo el tema, espero puedan ayudarme con esas dudillas.

Saludos.
  #15 (permalink)  
Antiguo 23/07/2009, 07:52
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Mandar a otra página con un select.

Amigo insisto todo lo que necesitas saber es teoria fundamental de JS,Html, post y get... si no sabes eso no puedes hacer paginas web dinamicas

mira aqui sale informacion para abrir pagina

http://www.forosdelweb.com/f15/trans...script-345503/

y para recibir las variables en el pop te lo respondí en el primer post...
fijate bien y date una vuelta por el foro de JS (Una pista metodo "GET")...
por ahora me retiro..
Saludos y suerte
  #16 (permalink)  
Antiguo 23/07/2009, 08:05
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Mandar a otra página con un select.

Checaré lo del método 'GET', pero en cuanto a lo que me mandaste, me malexpliqué, no busco como dar submit a un form con js, busco una funcion parecida a la del popup que me diste, pero que no me abra un pop al dar click, simplemente me mande a otra página, sin necesidar de un botón, osea con un OnChange, ¿me explico?

Gracias por tu ayuda, saludos.
  #17 (permalink)  
Antiguo 23/07/2009, 08:10
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Mandar a otra página con un select.

lea lea lea

http://www.forosdelweb.com/f15/trans...script-345503/
http://www.forosdelweb.com/f15/trans...script-345503/
http://www.forosdelweb.com/f15/trans...script-345503/
http://www.forosdelweb.com/f15/trans...script-345503/
  #18 (permalink)  
Antiguo 23/07/2009, 12:44
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Mandar a otra página con un select.

Se me ocurrió otra idea y precisamente con el submit() hehe, solamente oculté el botón con CSS y listo!

Gracias por tu ayuda chumisiado, saludos.
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 01:20.