Foros del Web » Programando para Internet » PHP »

ejemplo de combos dinámicos

Estas en el tema de ejemplo de combos dinámicos en el foro de PHP en Foros del Web. Encontré este ejemplo que es muy bueno por si a alguien le sirve: Código HTML: <script language= "javascript" src= "js/jquery-1.2.6.min.js" > </script> <script language= "javascript" ...
  #1 (permalink)  
Antiguo 10/04/2012, 07:57
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
ejemplo de combos dinámicos

Encontré este ejemplo que es muy bueno por si a alguien le sirve:

Código HTML:
<script language="javascript" src="js/jquery-1.2.6.min.js"></script>
<script language="javascript">
$(document).ready(function(){
   $("#marca").change(function () {
           $("#marca option:selected").each(function () {
            elegido=$(this).val();
            $.post("modelos.php", { elegido: elegido }, function(data){
            $("#modelo").html(data);
            });            
        });
   })
});
</script> 
Código HTML:
<p>Marca:
<select name="marca" id="marca">    
    <option value="1">Renault</option>
    <option value="2">Seat</option>
    <option value="3">Peugeot</option>    
</select></p>
<p>Modelo:
<select name="modelo" id="modelo">    
    <option value="1">4</option>
    <option value="2">5</option>
    <option value="3">7</option>
    <option value="4">21</option>
    <option value="5">Scennic</option>
    <option value="6">Traffic</option>
</select></p> 

modelos.php
Código PHP:
<?php
$options
="";
if (
$_POST["elegido"]==1) {
    
$options'
    <option value="1">4</option>
    <option value="2">5</option>
    <option value="3">7</option>
    <option value="4">21</option>
    <option value="5">Scennic</option>
    <option value="6">Traffic</option>
    '
;    
}
if (
$_POST["elegido"]==2) {
    
$options'
    <option value="1">Ibiza</option>
    <option value="2">Toledo</option>
    <option value="3">Cordoba</option>
    <option value="4">Arosa</option>
    '
;    
}
if (
$_POST["elegido"]==3) {
    
$options'
    <option value="1">106</option>
    <option value="2">206</option>
    <option value="3">306</option>
    '
;    
}
echo 
$options;    
?>
Fuente: http://www.jose-aguilar.com/blog/com...ry-ajax-y-php/


Lo probé y funciona perfecto, pero me gustaría hacer en la parte de modelos.php sea variable.

Hice algo así, pero mo logro levantar los valores correspondientes

Código PHP:
<?php 

$conn 
= new conection();
$rs = new RecordSet($conn);
               

$sql="SELECT `subcategoria`.`categoria`, `subcategoria`.`titulo`, `categoria`.`titulo` 
FROM `categoria`, `subcategoria` WHERE `subcategoria`.`categoria` = `categoria`=$categoria->id"
;
$sub $rs->get_object($sql);
             
$options="";
if (
$_POST["elegido"]==$sub) {
    
$options?> ' 
    <?php
        
foreach($rs as $valor){?>
                <option value="<?php echo $valor->id ?>"><?php echo $valor->titulo ?></option>
    <?php 
        
}}?>
    
    
   ' <?php  
}

echo 
$options;    
?>
Gracias de antemano!
__________________
Saludos!!!
Maru.-
  #2 (permalink)  
Antiguo 10/04/2012, 09:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ejemplo de combos dinámicos

Necesitas aprender a concatenar, no puedes hacer eso, tienes que hacer algo así:
Código PHP:
Ver original
  1. $foo = '';
  2. foreach ($array as $val) {
  3.       $foo .= 'blah' . $val;
  4. }
  5.  
  6. echo $foo;

Esa forma de agregar a un string no es soportada por PHP, te invito a que leas un manual básico de como concatenar strings en PHP.

Saludos.
  #3 (permalink)  
Antiguo 10/04/2012, 11:51
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: ejemplo de combos dinámicos

Gracias por tu ayuda GatorV!

lo probé así y muestra el combo - lo dejo por si a alguien le sirve, ahora necesito algo de ayuda (explico abajo)

Código PHP:
$conn = new conection(); 
$rs = new RecordSet($conn);                


$sql="SELECT * FROM categoria, subcategoria WHERE subcategoria.categoria = categoria.id";
$sub = $rs->get_object_list($sql); 
             
$foo = '';
?>
<select>

<?php
foreach ($sub as $val) {
      
$foo .= "\<option value=\"".$val->id."\">".$val->titulo."</option>\n";
}
 
echo 
$foo;
?>
</select>
Pero no he logrado que responda al jquery según la categoria, es decir que probando este archivo .php carga el combo de subcategorias completo, pero es precisamente el archivo que llama el jquery, donde se deberia desplegar solo la subcategoria según la categoria seleccionada.
__________________
Saludos!!!
Maru.-
  #4 (permalink)  
Antiguo 10/04/2012, 12:02
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: ejemplo de combos dinámicos

creo que se debe a que tu "<select>" no tiene ni nombre ni id ni nada
  #5 (permalink)  
Antiguo 10/04/2012, 12:34
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: ejemplo de combos dinámicos

probé con <select name="marca" id="marca"> pero tampoco resulta
__________________
Saludos!!!
Maru.-
  #6 (permalink)  
Antiguo 10/04/2012, 12:48
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: ejemplo de combos dinámicos

ahora el problema que veo es que tienes el <select> de más... :S perdón por no verlo antes... trata quitando ese <select> y que solo genere los '<option>'
  #7 (permalink)  
Antiguo 10/04/2012, 13:59
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: ejemplo de combos dinámicos

pues ahora aparece el combo pero sin realizar el filtro... es decir que aparecen todas las subcategorias de la tabla...

La consulta es esta

$sql="SELECT * FROM categoria, subcategoria WHERE subcategoria.categoria = categoria.id";
$sub = $rs->get_object_list($sql);
__________________
Saludos!!!
Maru.-
  #8 (permalink)  
Antiguo 10/04/2012, 15:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ejemplo de combos dinámicos

Pues a tu condición del WHERE le falta que le pases la variable que le envías por AJAX que viene en $_POST['elegido'] para que solo te muestre aquellas opciones filtradas.
  #9 (permalink)  
Antiguo 10/04/2012, 15:27
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: ejemplo de combos dinámicos

excelente!!! funcionó!!! mil gracias a ambos!!! :)
__________________
Saludos!!!
Maru.-
  #10 (permalink)  
Antiguo 10/04/2012, 15:50
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: ejemplo de combos dinámicos

me da mucho gusto que te haya funcionado... jejejeje saludos

Etiquetas: combos, ejemplo, html, sql, variables
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:03.