Foros del Web » Programando para Internet » PHP »

PHP y Combox dependientes

Estas en el tema de PHP y Combox dependientes en el foro de PHP en Foros del Web. Hola pa todos;;;;; Esta vez solicito ayuda para llenar un combox dependiente de otro, ambos estan en una base de datos. Ejkemplo: al seleccionar el ...
  #1 (permalink)  
Antiguo 16/10/2008, 11:39
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
PHP y Combox dependientes

Hola pa todos;;;;;

Esta vez solicito ayuda para llenar un combox dependiente de otro, ambos estan en una base de datos.

Ejkemplo: al seleccionar el pais de un combo (con los datos de una base de datos) se debe cargar otro combox con los valores correspondientes a las ciudades del pais seleccionado.

Muchas gracias por su ayuda...
  #2 (permalink)  
Antiguo 16/10/2008, 11:58
 
Fecha de Ingreso: octubre-2007
Mensajes: 36
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: PHP y Combox dependientes

Esto se puede hacer con Ajax, no es muy complicado hacerlo.
Creo haber visto uno que otro tema parecido a este, dale una revisada y hallaras lo que te digo.
y si no pues como quiera ahorita pongo algún ejemplo.

Saludos!!!
  #3 (permalink)  
Antiguo 16/10/2008, 12:09
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: PHP y Combox dependientes

Muchas Gracias Angel pero quisiera saber si tenes un ejemplo sea o no con ajax ojala con php, gracias
  #4 (permalink)  
Antiguo 16/10/2008, 12:30
 
Fecha de Ingreso: octubre-2007
Mensajes: 36
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: PHP y Combox dependientes

Lo mas facil sería hacerlo con Ajax, solo con php no se puede.
Se podría hacer unicamente con Javascript pero es muy engorroso y para nada recomendable (desde mi punto de vista, claro esta).

Lo que vas a necesitar para hacerlo con Ajax:
- Libreria jQuery (hay otras pero es la que uso mas).
- Archivo php en donde hagas la peticion Ajax.

En unos momentos edito con el codigo :p

EDIT:

Archivo 1, en done muestras los combos

Lo que hay que tomar muy en cuenta es en el evento onchange, en la peticion Ajax. pero para eso deberias de leer un poco acerca de la libreria jQuery, no es muy complicada y hay buenos articulos.

Te explico un poco lo que se hace en el llamado AJax:
- El primer parametro ("ajax_combos.php"), indica el archivo al que se le hace la peticion Ajax.
- El segundo parametro ({valorcombo: this.value}), marca los parametros que se le envian mediante POST (tambien se puede por GET, pero este llamada en particular lo hace por POST)
- El tercer parametro (function(data){$("#Combo2").html(data)}), nos indica que las acciones que hagas (en este ejemplo seria los options de los combos) los refleje en el objeto con id "Combo2" (realiza un innerHTML sobre ese objeto).

Aclaro que esta explicacion no es para nada tecnica :p, trate de explicarme lo mas sencillo posible.

Código PHP:
<html>
    <
head>
        <
script type="text/javascript" src="jquery-1.2.3.pack.js"></script>
        
        <script>
            //Con este codigo se utiliza la libreria jQuery
            //Se añade al combo con id Combo1 el evento onchange
            //<![CDATA[
            $(document).ready(
    
                function()
                {
                
                    $("#Combo1").change
                    (
                        function()
                        {
                            $.post("ajax_combos.php",{valorcombo: this.value},function(data){$("#Combo2").html(data)});
                        }
                    )
                }
            
            );
            //]]>
        </script>
    </head>
    <body>
    <select name='Combo1' id='Combo1'>
        <option value=''>Selecciona</option>
        <option value=1>Opcion 1</option>
        <option value=2>Opcion 2</option>
    </select>
    </body>
</html> 

Archivo 2: ajax_combos.php
A este archivo se le realiza la peticion Ajax.

Código PHP:
<?php
       $valorcombo 
$_POST['valorcombo'];
    
    
//Si vas a consultar a una BD realizas las conexiones correspondientes.
    
    
$query "select ..."
    
$rs_query mysql_query($query);
    while(
$rw_query mysql_fetch_row($rs_query))
    {
        
//Aqui ya cuando tienes los valores que vas a mostrar en los combos
        //Solo mandas mostrar las opciones.
        
echo "<option value='$rw_query[0]'>$rw_query[1]</option>";
    }
    
    
//ya cuando termine el ciclo, vas a tener las opciones en el combo dependiente
?>
Solo necesitarias bajar la libreria jQuery, Google es tu amigo :)

Creo que eso seria todo, cualquier cosa que se me haya quedado la añado xD
Saludos!!!

Última edición por Angel_Cruijff; 16/10/2008 a las 12:54
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 19:22.