Foros del Web » Programando para Internet » PHP »

Combo Selecc PHP INNER JOIN

Estas en el tema de Combo Selecc PHP INNER JOIN en el foro de PHP en Foros del Web. Hola se que han pasado años de este post pero ahora este problema que ya lo han solucionado con respecto a este post descarge el ...
  #1 (permalink)  
Antiguo 03/12/2012, 17:52
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Combo Selecc PHP INNER JOIN

Hola
se que han pasado años de este post pero ahora este problema que ya lo han solucionado con respecto a este post descarge el mismo script

Script select

y en el index esta esto que si funciona, llega el post al DB con el nombre que corresponde
Código PHP:
<select name="pais" id="pais" type="text"/>
  <option selected="selected" value="0">---------</option>
<?
$res 
mysql_query("SELECT * FROM pais");
$cant =  mysql_num_rows($res);
if(
$cant>0){                        
    while(
$rs mysql_fetch_array($res)){
    
?>
        <option value="<?=$rs['pais']?>"><?=$rs['pais']?></option>
    <? 
    
}

?>
  </select>
El problema es aqui no imprime la lista y en el DB llega vacio, podrian orientarme que esta mal?? intente con inner pero nada

Código PHP:

<?
require_once('conexion.php');
mysql_connect($dbhost,$dbuser,$dbpass) or die(mysql_error());
mysql_select_db($dbdatabase) or die(mysql_error());
$idcombo $_POST["id"];
$action =$_POST["combo"];
$pais =$_POST["pais"];
$ciudad =$_POST["ciudad"];  
$estado =$_POST["estado"]; 
switch(
$action){
    case 
"pais":{
        
$res mysql_query("SELECT idestado,estado FROM estado WHERE pais = $idcombo order by estado ASC");
        while(
$rs mysql_fetch_array($res))
//            echo '<option value="'.$rs['estado'].'">-'.htmlentities($rs['estado']).'</option>';    
            
echo '<option value="'.$rs['idestado'].'">'.htmlentities($rs['estado']).'</option>';    
    break;
    }
    case 
"estado":{        
        
$res mysql_query("SELECT idciudad,ciudad FROM ciudad WHERE estado= $idcombo order by ciudad ASC");
        while(
$rs mysql_fetch_array($res))
//            echo '<option value="'.$rs['ciudad'].'">-'.htmlentities($rs['ciudad']).'</option>';    
            
echo '<option value="'.$rs['idciudad'].'">'.htmlentities($rs['ciudad']).'</option>';                
    break;
    }
}
?>
  #2 (permalink)  
Antiguo 03/12/2012, 18:13
 
Fecha de Ingreso: febrero-2011
Ubicación: Capital Federal
Mensajes: 45
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: Combo Selecc PHP INNER JOIN

Postea el código completo. No queda claro qué es lo que no te funciona.
  #3 (permalink)  
Antiguo 03/12/2012, 18:57
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: Combo Selecc PHP INNER JOIN

Cita:
Iniciado por nahuelevy Ver Mensaje
Postea el código completo. No queda claro qué es lo que no te funciona.
Código PHP:
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
    $("select").change(function(){
        // Vector para saber cuál es el siguiente combo a llenar

        var combos = new Array();
        combos['pais'] = "estado";
        combos['estado'] = "ciudad";
        // Tomo el nombre del combo al que se le a dado el clic por ejemplo: país
        posicion = $(this).attr("name");
        // Tomo el valor de la opción seleccionada 
        valor = $(this).val()        
        // Evaluó  que si es país y el valor es 0, vacié los combos de estado y ciudad
        if(posicion == 'pais' && valor==0){
            $("#estado").html('    <option value="0" selected="selected">----------------</option>')
            $("#ciudad").html('    <option value="0" selected="selected">----------------</option>')
        }else{
        /* En caso contrario agregado el letreo de cargando a el combo siguiente
        Ejemplo: Si seleccione país voy a tener que el siguiente según mi vector combos es: estado  por qué  combos [país] = estado
            */
            $("#"+combos[posicion]).html('<option selected="selected" value="0">Cargando...</option>')
            /* Verificamos si el valor seleccionado es diferente de 0 y si el combo es diferente de ciudad, esto porque no tendría caso hacer la consulta a ciudad porque no existe un combo dependiente de este */
            if(valor!="0" || posicion !='ciudad'){
            // Llamamos a pagina de combos.php donde ejecuto las consultas para llenar los combos
                $.post("combos.php",{
                                    combo:$(this).attr("name"), // Nombre del combo
                                    id:$(this).val() // Valor seleccionado
                                    },function(data){
                                                    $("#"+combos[posicion]).html(data);    //Tomo el resultado de pagina e inserto los datos en el combo indicado                                                                                
                                                    })                                                
            }
        }
    })        
})
</script>

<form id="form1" name="form1">
<div>
<select name="pais" id="pais">
    <option selected="selected" value="0">---------</option>

<?
$res 
mysql_query("SELECT * FROM pais");
$cant =  mysql_num_rows($res);
if(
$cant>0){                        
    while(
$rs mysql_fetch_array($res)){
    
?>
        <option value="<?=$rs['idpais']?>"><?=$rs['pais']?></option>
    <? 
    
}

?>

</select>
</div>

<div>
<select id="estado" name="estado">
    <option value="0" selected="selected">----------------</option>
</select>
</div>

<div> 
<select id="ciudad" name="ciudad">
    <option value="0" selected="selected">-------------------</option>
</select>
</div>
</form>
TABLA

Código HTML:
CREATE TABLE `pais` (
`idpais` int(10) unsigned NOT NULL auto_increment,
`pais` varchar(50) default NULL,
PRIMARY KEY USING BTREE (`idpais`)
) ENGINE=MyISAM;
 
CREATE TABLE `estado` (
`idestado` int(10) unsigned NOT NULL auto_increment,
`estado` varchar(50) default NULL,
`pais` int(11) NOT NULL default '0',
PRIMARY KEY USING BTREE (`idestado`)
) ENGINE=MyISAM;
 
CREATE TABLE `ciudad` (
`idciudad` int(10) unsigned NOT NULL auto_increment,
`ciudad` varchar(50) NOT NULL default '',
`estado` int(11) NOT NULL default '0',
`pais` int(10) unsigned NOT NULL default '0',
PRIMARY KEY USING BTREE (`idciudad`)
) ENGINE=MyISAM;
"el combo select"

Código PHP:
<?
require_once('conexion.php');
$idcombo $_POST["id"];
$action =$_POST["combo"];
switch(
$action){
    case 
"pais":{
        
$res mysql_query("SELECT idestado,estado FROM estado WHERE pais = $idcombo order by estado ASC");
        while(
$rs mysql_fetch_array($res))
            echo 
'<option value="'.$rs['idestado'].'">'.htmlentities($rs['estado']).'</option>';    
    break;
    }
    case 
"estado":{        
        
$res mysql_query("SELECT idciudad,ciudad FROM ciudad WHERE estado= $idcombo order by ciudad ASC");
        while(
$rs mysql_fetch_array($res))
            echo 
'<option value="'.$rs['idciudad'].'">'.htmlentities($rs['ciudad']).'</option>';    
    break;
    }
}
?>
Listo eso es todo el script espero que a muchos les ayude este script si funciona muy bien pero, en modo post envia datos solo numeros de "Id's" y la idea es que llegue el nombre de seleccion

Etiquetas: combo, html, join, mysql, sql
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 12:33.