Foros del Web » Programando para Internet » PHP »

Varios combos secuenciales

Estas en el tema de Varios combos secuenciales en el foro de PHP en Foros del Web. Hola a todos, Mi duda es la siguiente: Tengo 4 combos y quiero ir seleccionando las opciones en un orden concreto. Combo 1 Combo 2 ...
  #1 (permalink)  
Antiguo 04/03/2011, 02:11
 
Fecha de Ingreso: noviembre-2005
Ubicación: Alicante (España)
Mensajes: 242
Antigüedad: 19 años
Puntos: 1
Varios combos secuenciales

Hola a todos,

Mi duda es la siguiente:
Tengo 4 combos y quiero ir seleccionando las opciones en un orden concreto.

Combo 1
Combo 2
Combo 3
Combo 4

Al mostrar la página, quiero que el combo 1 esté habilitado y el 2, 3 y 4 no.
Cuando selecciono el combo 1 entonces realizo una consulta con el valor seleccionado y habilito el combo 2. Entonces el 1, 3 y 4 están deshabilitados.
Luego realizo una consulta con las opciones 1 y 2 introducidas y habilito el combo 3 deshabilitando el resto… Y, finalmente, dejo activo el 4.

El hecho de realizar consultas con las opciones que voy mostrando es porque quiero que el contenido de los combos sea dinámico y muestre unas opciones u otras dependiendo de lo que se va seleccionando en los combos anteriores.

Como veis, es una especie de página dirigida que filtra las opciones que el usuario introduce en un orden.

Las consultas las tengo creadas.
Los combos también.

Lo único que no sé hacer es habilitar y deshabilitar (¿Cómo implemento esto?), los combos que toca en cada situación.

Necesito una variable php que me diga en qué estado estoy para saber qué combo activar y cual no y qué consulta lanzar.

¿Puede alguien, por favor, implementarme un pequeño código de ejemplo?

Un saludo
  #2 (permalink)  
Antiguo 04/03/2011, 03:09
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 402
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: Varios combos secuenciales

Creo que en tu caso iria bien la funccion

switch
  #3 (permalink)  
Antiguo 04/03/2011, 06:16
 
Fecha de Ingreso: noviembre-2005
Ubicación: Alicante (España)
Mensajes: 242
Antigüedad: 19 años
Puntos: 1
Respuesta: Varios combos secuenciales

Sí w0rldart,

eso lo tengo claro pero lo que me gustaría saber y no sé, es cómo puedo indicar que un combo está habilitado y qué combo deshabilitado.

Además necesitaría también usar una variable que mantenga el valor del estado en el que estoy con cada recarga de página, podría utilizar una variable de sesión o una variable normal pasándole por GET el valor del estado cada vez que selecciono una opción de un combo y lanzo la consulta correspondiente.

Me gsutaría ver un ejemplo pequeñito de código con estas instrucciones
Algo como

$estado = 1;

<select combo1></select>
<select combo2 desactivado></select>
<select combo3 desactivado></select>
<select combo4 desactivado></select>

switch (estado){

case 1:
lanza consulta 1;
Activar combo 2;
Desactivar combos 1, 3 y 4;
estado=2;

case 2:
lanza consulta 2;
Activar combo 3;
Desactivar combos 1, 2 y 4;
estado=3;

case 3:
lanza consulta 3;
Activar combo 4;
Desactivar combos 1, 2 y 3;
estado=4;

case 4:
lanza consulta 4;
Desactivar combos 1, 2 3 y 4;
Fin;
}

Lo que no sé escribir es la activación y desactivación de los comboBox.
¿Estaría bien este esquema?
¿Alguien puede implementarme el código referente a los comboBox para saber activarlos y desactivarlos en cada caso?
Yo ya tengo creadas las consultas.

¿Cómo veis el uso de la variable estado para saber en qué "estado" me encuentro y activar o desactivar los combos?
Debería ser una variable de sesión, ¿verdad?

un saludo
  #4 (permalink)  
Antiguo 09/03/2011, 04:05
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 402
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: Varios combos secuenciales

Yo lo aria asi
Código PHP:
<?php

if (isset($_REQUEST['estado'])) {
$case $_REQUEST['estado'];
} else {
$case 0;
}

switch (
$estado) {
case 
1:
...
I luego podrias usar eso en plan asi
Código PHP:
if($case == 1){

tufuncion();


La esquema la tienes bien, te recomiendo que vuelves a mirar la base de html.
http://www.w3schools.com/html/html_forms.asp
http://com.w3schools.com/jsref/dom_obj_checkbox.asp
  #5 (permalink)  
Antiguo 09/03/2011, 08:08
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años, 6 meses
Puntos: 60
Respuesta: Varios combos secuenciales

Esto con javascript es mas sencillo
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #6 (permalink)  
Antiguo 11/03/2011, 02:52
 
Fecha de Ingreso: noviembre-2005
Ubicación: Alicante (España)
Mensajes: 242
Antigüedad: 19 años
Puntos: 1
Respuesta: Varios combos secuenciales

Hola a todos,

no entiendo muy bien el código de worldart. Ése $_REQUEST['estado'] no lo veo.
¿puedes por favor, explicarme a qué te refieres.

Para mí, estado es una variable que utilizo para asignarle el estado en el que me encuentro de forma manual y sólo después de saber qué combo acabo de completar, lo cual no me resulta fácil siempre. A ver si me explico mejor:

Tengo 4 combos en un formulario: (combo1, combo2, combo3 y combo4)

Los combos se seleccionan de forma secuencial, no puedo seleccionar una opción del combo 3 sin haber completado el 1 y el 2.
El combo3, por ejemplo, está desactivado si no he completado el dos y se habilitara en el momento en el que informe este último.

Lo que si puedo hacer es cambiar la opción de un combo ya seleccionado.

Tengo una variable “estado” que me indica qué combo debo completar para continuar con la secuencia. Si no he completado ninguno, estoy en el estado 1. Si he completado el 2 y puedo seleccionar una opción del 3, estoy en el estado 3, etc.

He creado 4 campos ocultos para almacenar el valor que había en el combo y poder compararlo con el nuevo valor, por si se diera el caso de que el usuario quiere modificar alguno de ellos.

Mi problema es el siguiente:

EJEMPLO:

Completo el combo 1 con la opción “Pepe”
El combo 2 con la opción “trabaja”
El combo 3 con la opción “mucho”

Ahora cambio el combo 2 por la opción “descansa”

Y, al hacer submit, está enviando también el valor “mucho” en el combo 2. Yo no quiero que envíe nada en el combo 3 porque ha modificado el 2 y, es posible que esa opción no debiera aparecer si realizamos la consulta con la nueva opción del combo 2. Es incongruente decir que “Pepe descansa mucho”.

Pero para ello, debería vaciar los combos antes de hacer el submit pero eso con php... Ni idea de como realizarlo.. y me gustaría hacerlo con php porque lo estoy programando todo así... si es posible, claro....

Última edición por Tarzan; 11/03/2011 a las 09:49

Etiquetas: combos
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 11:26.