Foros del Web » Programando para Internet » PHP »

Un Combo que carga otro Combo, con base de Datos

Estas en el tema de Un Combo que carga otro Combo, con base de Datos en el foro de PHP en Foros del Web. Hola gente estube leyendo unos post pero ninguno me sirvio a exepcion de este http://www.forosdelweb.com/showthrea...37160600007662 Pero no logre dar con nla pagina que espedifica que ...
  #1 (permalink)  
Antiguo 29/05/2007, 19:06
 
Fecha de Ingreso: febrero-2004
Ubicación: sAN jUAN
Mensajes: 69
Antigüedad: 20 años, 2 meses
Puntos: 0
Un Combo que carga otro Combo, con base de Datos

Hola gente estube leyendo unos post pero ninguno me sirvio a exepcion de este

http://www.forosdelweb.com/showthrea...37160600007662

Pero no logre dar con nla pagina que espedifica que daaba alguna solucion.

Necesito realizar lo siguiente, acalro que me eh vuelto loko tratandolo de hacer y no eh podido. Tengo un menu desplegable que tiene como Option mi base de datos, que contiene articulos de Pc(ejemplo Memoria 512mb 400mhz), bueno al seleccionar una opcion automaticamente se seleccione o de el precio exacto que tiene en la base de datos.

Digamos que cuadno yo toque un producto automaticamente en otro menu de su Precio. El articulo y producto se encuentran en la misma base de dato y en la misma tabla.

Alguna sugerencia?¿?

Gracias
  #2 (permalink)  
Antiguo 29/05/2007, 22:55
 
Fecha de Ingreso: abril-2006
Mensajes: 49
Antigüedad: 18 años
Puntos: 0
Re: Un Combo que carga otro Combo, con base de Datos

Hice algo parecido, pero en complemento con Javascript, en este foro hay muchos ejemplos (listados o combos dependientes).

Tambien se puede hacer con Ajax.

El que esten ambos datos en la misma Tabla no afecta, al contrario, se debe hacer así.

Suerte.

Suerte
  #3 (permalink)  
Antiguo 30/05/2007, 00:35
 
Fecha de Ingreso: mayo-2007
Mensajes: 19
Antigüedad: 17 años
Puntos: 1
Re: Un Combo que carga otro Combo, con base de Datos

El pera tiene razón... te voy a poner un script muy sencillo para hacer dos listas desplegables dependientes que puede ser que te sirvan... el problema es que si no los combinas con AJAX o te las ingenias de otra manera, si dichas listas dependientes están dentro de otro formulario al elegir la primera opción se produce un envío de formulario (del código hacia la DB para elegir la segunda lista en base a la primera) con la consecuente recarga de la página y por ende la pérdida de los datos hasta el momento ingresados por el usuario.

Primero prepara las tablas en la DB SQL que dependerán una de la otra:

Cita:
1.- En la base de datos se crean 2 tablas

2.- La primera tabla (table1) con 2 campos:
CAMPO 1: id tinyint (3) (que es el primario o la PRIMARY KEY)
CAMPO 2: color (varchar)... bla, bla bla...

id | color
1 | Escoge un color
2 | Primarios
3 | Secundarios

3.- La tabla 2 (table2, en el ejemplo) con dos campos también:

id_2 | subcolor
2 | Amarillo
2 | Rojo
3 | Verde
3 | Violeta
3 | Marrón
2 | Azul

3.- Al elegir un color en la primera lista se actualiza tomando en cuenta el id. el campo id_2 NO PUEDE SER PRIMARY KEY por tener numeros repetidos que hacen referencia al id de la table1.
Ahora el PHP:
Código PHP:
<?php 
mysql_connect
("myhost","myuser","mypass");
mysql_select_db("mydb");
$firstQry         =    mysql_query("select * from table1") or die(mysql_error());      // table 1
 
//La consulta obtiene el id de la tabla 1 que lo comparará con el de la 2//
$secondQry      =  mysql_query("select * from  table2 where id_2  = '".$_POST["first"]."'") or die(mysql_error());      // table 2
?>
<form name="check" method="post">

    <!-- A partir de aquí la primera lista desplegable -->
        <select name="first" onchange="this.form.submit()">
            <?php while($res        =      mysql_fetch_array($firstQry)){?>
                <option  value="<?php echo $res["id"]?>"><?php echo $res["color"]?></option>
            <?php }unset($firstQry,$res);?>
        </select>
    <!-- Aquí termina la primera lista desplegable -->

    <!-- A partir de aquí la segunda lista desplegable -->
        <?php if(isset($_POST["first"])){?>
        <select name="second">
            <?php while($row        =      mysql_fetch_array($secondQry)){?>
                <option  value="<?php echo $row["subcolor"]?>"><?php echo $row["subcolor"]?></option>
            <?php }
            }unset(
$secondQry,$row);?>
        </select>
    <!-- Aquí termina la segunda lista desplegable -->
</form>
En teoría, al elegir en el primer combo el color primario, se hace un post para recargar la lista dos que tendrá amarillo, azul, rojo, etc...

Te repito que en este caso se recarga la página ya que si quieres hacer algo como el formulario siguente:

Nombre ________
Apellidos_________
Provincia__________
Localidad__________(campo dependiente de provincia)


si el cliente ha escrito ya su nombre y apellidos al elegir la provincia de la lista la pag se recarga y se cancela lo ya escrito, asi que o lo usas para solo las listas dependientes, o lo ones salomonicamente al principio o mas inteligentemente usas AJAX para que no se recarge la pag.

Espero que te sirva.

Saludos

Última edición por acantocephala; 30/05/2007 a las 00:41
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 09:41.