Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Combo o menu desplegable dinamico (https://www.clubdelphi.com/foros/showthread.php?t=14940)

Andrea Martinez 05-10-2004 15:27:07

Combo o menu desplegable dinamico
 
¿Como puedo hacer para que al cambiar la opción seleccionada en un combo, cambien también las opciones disponibles en otro combo?

o lo que pasa es que tengo una pagina con dos combos y quisiera que cuando selecciones un valor del primer combo se carguen valores en el 2do combo

Tecnic2 08-10-2004 10:12:20

Propiedad Items.Add del combo
 
Lo puedes hacer con la propiedad combo.Items.Add('valor');

kayetano 11-10-2004 10:17:35

Hola

con esto vacias un combo:
Código PHP:

miCombo.length 0

y con esto metes nuevas opciones:
Código PHP:

miCombo.options[x] = new Option('texto'valor ); 

y si no recuerdo mal con esto puedes seleccionar una de las opciones
Código PHP:

miCombo.options[1].selected true

Todo, claro, en javascript. (no en php)

Emilio 12-10-2004 11:46:09

Bueno vamos a ampliar con un sencillo ejemplito para que Kayetano no me tache de escueto ;)

Código PHP:

<script>
function 
cambioregion ) {
  
document.form.comboB.length =0;
  switch ( 
region )  {
    case 
'baleares': {
      
document.form.comboB.options[0] = new Option('Mallorca''mallorca' );
      
document.form.comboB.options[1] = new Option('Menorca''menorca' );
      
document.form.comboB.options[2] = new Option('Ibiza''ibiza' );
      break;
    }
    case 
'catalunya': {
      
document.form.comboB.options[0] = new Option('Barcelona''barcelona' );
      
document.form.comboB.options[1] = new Option('Tarragona''tarragona' );
      
document.form.comboB.options[2] = new Option('Lerida''lerida' );
      
document.form.comboB.options[3] = new Option('Gerona''gerona' );
      break;
    }
    case 
'galicia':  {
      
document.form.comboB.options[0] = new Option('La Coruña''lacoruña' );
      
document.form.comboB.options[1] = new Option('Lugo''lugo' );
      
document.form.comboB.options[2] = new Option('Orense''orense' );
      
document.form.comboB.options[3] = new Option('Pontevedra''pontevedra' );
      break;
    }
  }
}
</script>

 
<form name="form" method="post" action="">
  <select name="comboA" onChange="cambio(this.value)">
      <option value="0" selected>Selecciona algo</option>
      <option value="baleares">Baleares</option>
      <option value="catalunya">Cataluña</option>
      <option value="galicia">Galicia</option>
  </select>
  <select name="comboB">
  </select>
</form> 

No creo que sean necesarias muchas explicaciones, si hay dudas copia y pega el codigo en un .htm y lo lanzas con tu navegador, él hablará por si mismo.

noshy 23-02-2007 23:59:52

Una modificacion
 
Todo claro, pero dentro del script, en la funcion cambio() se puede agregar codigo php para realizar un select por ejemplo, y recoger la variable de parametro??

Gracias

kayetano 25-02-2007 00:38:28

Hola

Me gusta que la gente utilice el sistema de búsqueda del foro y siga hilos de hace 3 años ;).

Cita:

Empezado por noshy
en la funcion cambio() se puede agregar codigo php para realizar un select por ejemplo, y recoger la variable de parametro??

A tu pregunta te contestaré que NO, no puedes mezclar JAVASCRIPT con PHP ya que el PHP se interpreta en el servidor y el JAVASCRIPT en la máquina local, como opciones tienes tres:
1. La más chunga, recargar la página cada vez que modifiques el contenido.
2. La más moderna, utilizar AJAX, este sistema permite hacer llamadas al servidor y modificar una porción de tu código HTML sin necesidad de recargar la página entera.
3. La que yo uso, basicamente consisten en generar un array JAVASCRIPT con todos los posibles valores del desplegable, este array se generará desde PHP y utilizo como índice del array la clave primaria de mi tabla.

Espero que te sirva de algo.


La franja horaria es GMT +2. Ahora son las 01:34:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi