Foros del Web » Programando para Internet » PHP »

Duda con PHP con los llamados <select>

Estas en el tema de Duda con PHP con los llamados <select> en el foro de PHP en Foros del Web. Que tal soy TheShawn y soy programador en PHP, pero estoy empezando en este arte de programar , ya tengo experiencia en otros lenguajes de ...
  #1 (permalink)  
Antiguo 22/02/2006, 14:36
 
Fecha de Ingreso: febrero-2006
Ubicación: Aguascalientes Mexico
Mensajes: 2
Antigüedad: 18 años, 1 mes
Puntos: 0
Duda con PHP con los llamados <select>

Que tal soy TheShawn y soy programador en PHP, pero estoy empezando en este arte de programar , ya tengo experiencia en otros lenguajes de hecho estoy desarrollando una aplicación web

Pero me han surgido algunos problemas con la programación

Actualmente el problema que tengo y no he podido resolver es el de mostrar información de una consulta de MySQL en un <select>, eso ya lo resolvi, pero mi problema es cuando quiero mostrar un segundo <select> dependiendo del primer select..

No se si me explique pero doy mas pistas: si:

Tengo una base de datos con varias tablas, nos enfocaremos por el momento a 3, una de ellas contiene la información de carreteras, una mas contiene información de tramos de esas carreteras, hay una 3era que contiene subtramos de los tramos. Bueno el caso es que con un <select> muestro las carreteras y dependiendo la carretera seleccionada se debe mostrar los tramos según la carretera seleccionada, y un tercer <select> mostrara los subtramos dependiendo del tramo seleccionado anteriormente.

Mando tambien el codigo que tengo que no me ha funcionado y ojala me pudieran ayudar…


PD Tambien uso una pequeña funcion en JAVASCRIPT para saber que opcion se selecciona.

CODIGO

<script language="javascript">
function gotourl(form){
var i = form.selectedIndex;
window.location.href='paso.php?menu=' + form.options[i].value;
}
</script>

<?php
include("conec.php");
$link=Conectarse();
$idcarretera=@$_GET['menu'];

$query_carr = mysql_query("select * from tbl_carretera",$link);

if( $query_carr){
$n = mysql_num_rows( $query_carr);
if( $n > 0){
echo "<select name=\"menu\" onChange=\"gotourl(this)\";>";
echo "<option value=\"-1\">Selecciona una Carretera</option>";

for( $a = 0; $a < $n; $a++){

$arr = mysql_fetch_row( $query_carr);

echo "<option value=\"arr[0]\">$arr[1]</option>";

}

echo "</select>";

}

}



if( $idcarretera > 0){

echo "</td><td>Nombre del tramo: &nbsp;";
$query_tramo = mysql_query("select * from tbl_tramo where idcarr=$idcarretera",$link);
if ( $query_tramo){

$num_tram = mysql_num_rows( $query_tramo);

if ( $num_tram > 0){

echo "<select name=\"tramo\">";

echo "<option value=\"-1\">Selecciona un Tramo</option>";

for( $a2 = 0; $a2 < $num_tram; $a2++){

$arr_tram = mysql_fetch_row( $query_tramo);

echo "<option value=\"menu\">$arr_tram[2]</option>";

}

echo "</select>";
} else echo "</td><td>NO SE TIENE TRAMO DISPONIBLE</td>";
}

} else echo "</td><td>NO SE TIENE TRAMO DISPONIBLE</td>";

?>

PHP RULES!!!
  #2 (permalink)  
Antiguo 22/02/2006, 14:40
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Te dejo el link de las faq donde se explica:

http://www.forosdelweb.com/showthrea...999#post664999

Cualquier duda con el codigo pregunta por aqui.
  #3 (permalink)  
Antiguo 23/02/2006, 12:02
 
Fecha de Ingreso: febrero-2006
Ubicación: Aguascalientes Mexico
Mensajes: 2
Antigüedad: 18 años, 1 mes
Puntos: 0
Este es el codigo que tengo actualmente, gracias Claudio por tu ayuda, me fue de mucha utilidad, el problema es que tengo 3 tablas, se que el codigo es para 2 o mas tablas pero no encuentro la forma de que la 3er tabla hija se muestre correctamente...

Si me pudieras ayudar te lo agradeceria mucho.


Cita:
Cita:
<?
include("conec.php");
$link=Conectarse();

if (!empty($_POST['enviado'])){
// Procesar el formulario ...
echo "Procesando formulario:<br>";
echo "Recibido el ID de la carretera: ".$_POST['menu_carr']."<br>";
echo "Recibido el ID del Tramo: ".$_POST['menu_tramo'];
echo "Recibido el ID del Subtramo: ".$_POST['menu_subtramo'];
} else {
// Obtener el $id_carr del envio a si mismo del formulario ..
@$id_carr=$_POST['menu_carr'];
@$id_tramo=$_POST['menu_tramo'];

// Inicio Formulario .. PHP_SELF enviamos a si mismo (a este script).
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n";

// Formar Selec "Menu_Carr".
echo "<select name=\"menu_carr\" onChange=\"this.form.submit()\">\n";
echo "<option value=\"\"> Seleccione una Carretera </option>\n";

$consulta_carr = mysql_query("select * from tbl_carretera",$link);

While ($registro_carr=mysql_fetch_assoc($consulta_carr)) {
// Se mira si el ID_carr del registro es el mismo q el $id_carr q recibimos si hemos cambiado el select menu_tramo.
// Se selecciona en consecuencia (selected) la opción elegida.
if ($id_carr == $registro_carr['id_carr']){
echo "<option value=\"".$registro_carr['id_carr']."\" selected>".$registro_carr['nombre']."</option>\n";
} else {
echo "<option value=\"".$registro_carr['id_carr']."\">".$registro_carr['nombre']."</option>\n";
}
}
echo "</select>\n\n";

mysql_free_result($consulta_carr); // Liberar memoria usada por consulta.

// Formar Select "Tramo"
echo "<select name=\"menu_tramo\" onChange=\"this.form.submit()\">\n";

// Si $id_carr 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 menu_carr).
if (!empty($id_carr)){

$consulta_tramo = mysql_query("select * from tbl_tramo where id_carr='$id_carr'",$link);
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select ..
if (mysql_num_rows($consulta_tramo) != 0){
While ($registro_tramo=mysql_fetch_assoc($consulta_tramo )){
echo "<option value=\"".$registro_tramo['id_tramo']."\">".$registro_tramo['nombre']."</option>\n";
}
} else {
echo "<option value=\"\"> No hay tramos para esta Carretera </option>";
}
} else {
echo "<option value=\"\"> <-- Seleccione un Tramo </option>";
}

mysql_free_result($consulta_tramo); // Liberar memoria usada por consulta.

echo "</select>\n\n";

// Formar Select "Subtramo"
echo "<select name=\"menu_Subtramo\">\n";

// Si $id_carr 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 menu_carr).
if (!empty($id_carr)){
if(!empty($id_tramo)){
$consulta_subtramo = mysql_query("select * from tbl_subtramo where id_carr='$id_carr' and id_tramo='$id_tramo'",$link);
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select
if (mysql_num_rows($consulta_subtramo) != 0){
While ($registro_subtramo=mysql_fetch_assoc($consulta_su btramo)){
echo "<option value=\"".$registro_subtramo['id_subtramo']."\">".$registro_tramo['nombre']."</option>\n";
}
} else {echo "<option value=\"\"> No hay subtramos para este Tramo </option>";}
} else {echo "<option value=\"\"> <-- Seleccione un Subtramo </option>";}
} else {echo "<option value=\"\"> <-- Seleccione una Carretera </option>";}

mysql_free_result($consulta_subtramo); // 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 12:18.