Foros del Web » Programando para Internet » PHP »

Mostrar Nombres y No Id en Listas dependientes

Estas en el tema de Mostrar Nombres y No Id en Listas dependientes en el foro de PHP en Foros del Web. Que tal, Con este formulario de listas dependientes, al ser procesado se imprimen los valores del id así: Pero como hago para que en vez ...
  #1 (permalink)  
Antiguo 27/09/2005, 10:13
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 12 años, 3 meses
Puntos: 0
Mostrar Nombres y No Id en Listas dependientes

Que tal,

Con este formulario de listas dependientes, al ser procesado se imprimen los valores del id así:



Pero como hago para que en vez de mostrar el Id me Muestre el nombre del país al ser procesado ???

Gracias de Antemano.




Código PHP:
<? 
// datos de conexion a la BD. 
$servidor  "localhost"// host 
$usuario   "root"
$clave     ""
$basedatos "listas"// Indicar una Base de datos. 

// si se ha pulsao el boton enviar ($enviado) se procesa el formulario .. 
// Sino, se continua con el formulario y los nuevos valores de los Select .. 
// OJO si se tienen mas varibles (mas <input> ) se van a perder sus valores a no ser 
// que los obtengamos y se les de como valor inicial en el value= de cada uno segun corresponda. 

if (!empty($_POST['enviado'])){ 
    
// Procesar el formulario ... 
    
echo "Procesando formulario:<br>"
    echo 
"Recibido id_tabla_padre: ".$_POST['id_padre']."<br>"
    echo 
"Recibido id_tabla_hija: ".$_POST['id_hija']."<br>"
    echo 
"Recibido id_tabla_nieta: ".$_POST['id_nieta']; 
}else{ 
    
// Conexión a la BD 
    
$conexion mysql_connect($servidor$usuario$clave) or die(mysql_error()); 
    
mysql_select_db($basedatos$conexion) or die(mysql_error()); 
    
// Obtener el $id_padre del envio a si mismo del formulario .. 
    
if(isset($_POST['id_padre'])){ 
        
$id_padre=$_POST['id_padre']; 
    } 
    if(isset(
$_POST['id_hija'])){ 
        
$id_hija=$_POST['id_hija']; 
    }     
    
// Inicio Formulario .. PHP_SELF enviamos a si mismo (a este script). 
    
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n"
    
// Formar Selec "Padre". 
    
echo "<select name=\"id_padre\" onChange=\"this.form.id_hija.options.selectedIndex = -1;this.form.submit()\"n"
    echo 
"<option value=\"\"> Seleccione un Item </option>\n"
    
$SQLconsulta_padre="SELECT * FROM countries"
    
$consulta_padre mysql_query($SQLconsulta_padre,$conexion) or die(mysql_error()); 
    While   (
$registro_padre=mysql_fetch_assoc($consulta_padre      )){ 
        
// Se mira si el ID del registro es el mismo q el $id_padre q recibimos si hemos cambiado el select hijo. 
        // Se selecciona en consecuencia (selected) la opción elegida. 
        
if ($id_padre == $registro_padre['country_id']){ 
            echo 
"<option value=\"".$registro_padre['country_id']."\" selected>".$registro_padre['name']."</option>\n"
        } else { 
            echo 
"<option value=\"".$registro_padre['country_id']."\">".$registro_padre['name']."</option>\n"
        } 
    } 
    echo 
"</select>\n\n"
    
mysql_free_result($consulta_padre); // Liberar memoria usada por consulta. 
    // Formar Select "Hijo" 
    
echo "<select name=\"id_hija\" onChange=\"this.form.submit()\">\n"
    
// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opcion del select hijo 
    // se muestra el mensaje de "seleccine un item" (del select padre). 
    
if (!empty($id_padre)){ 
        
$SQLconsulta_hija="SELECT * FROM states WHERE country_id='$id_padre'"
        
$consulta_hija mysql_query($SQLconsulta_hija,$conexion) or die(mysql_error()); 
        
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select .. 
        
if (mysql_num_rows($consulta_hija) != 0){ 
            While   (
$registro_hija=mysql_fetch_assoc($consulta_hija))  { 
                if (
$id_hija == $registro_hija['state_id']){ 
                    echo 
"<option value=\"".$registro_hija['state_id']."\" selected>".$registro_hija['state']."</option>\n"
                } else { 
                    echo 
"<option value=\"".$registro_hija['state_id']."\">".$registro_hija['state']."</option>\n"
                } 
            } 
        } else { 
            echo 
"<option value=\"\"> No hay registros para este Item </option>"
        } 
     
    } else { 
        echo 
"<option value=\"\"> <-- Seleccione un Item  </option>"
    } 
    
mysql_free_result($consulta_hija); // Liberar memoria usada por consulta. 
    
echo "</select>\n\n"
    
// Formar Select "Nieto" 
    
echo "<select name=\"id_nieta\">\n"
    
// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opcion del select hijo 
    // se muestra el mensaje de "seleccine un item" (del select padre). 
    
if (!empty($id_hija)){ 
        
$SQLconsulta_nieta="SELECT * FROM cities WHERE state_id='$id_hija'"
        
$consulta_nieta mysql_query($SQLconsulta_nieta,$conexion) or die(mysql_error()); 
        
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select .. 
        
if (mysql_num_rows($consulta_nieta) != 0){ 
            While   (
$registro_nieta=mysql_fetch_assoc($consulta_nieta    )){ 
                echo 
"<option value=\"".$registro_nieta['id']."\">".$registro_nieta['city']."</option>\n"
            } 
        } else { 
            echo 
"<option value=\"\"> No hay registros para este Item </option>"
        } 
    } else { 
        if (empty(
$id_padre)){ 
            echo 
"<option value=\"\"> <-- Seleccione un Item  </option>"
        }else { 
            
$SQLconsulta_nieta="SELECT * FROM cities LEFT JOIN states on states.state_id=cities.state_id WHERE states.country_id='$id_padre'"
            
$consulta_nieta mysql_query($SQLconsulta_nieta,$conexion) or die(mysql_error()); 
            
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select .. 
            
if (mysql_num_rows($consulta_nieta) != 0){ 
                While   (
$registro_nieta=mysql_fetch_assoc($consulta_nieta    ))  { 
                    echo 
"<option value=\"".$registro_nieta['id']."\">".$registro_nieta['city']."</option>\n"
                } 
            } else { 
                echo 
"<option value=\"\"> No hay registros para este Item </option>"
            } 
        } 
    } 
    
mysql_free_result($consulta_nieta); // Liberar memoria usada por consulta. 
    
echo "</select>\n\n"
    echo 
"<input type=\"submit\" name=\"enviado\" value=\" Enviar \" >\n\n"
    echo 
"</form>\n"

?>
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 13:33.