Foros del Web » Programando para Internet » PHP »

Cargar listas automaticamente cuando se seleccione otra

Estas en el tema de Cargar listas automaticamente cuando se seleccione otra en el foro de PHP en Foros del Web. En mi base de datos tengo dos tablas una de países y otra de ciudades, cuando selecciones de una lista el país quiero que se ...
  #1 (permalink)  
Antiguo 12/05/2004, 10:59
 
Fecha de Ingreso: mayo-2004
Ubicación: Quito
Mensajes: 17
Antigüedad: 13 años, 7 meses
Puntos: 0
Cargar listas automaticamente cuando se seleccione otra

En mi base de datos tengo dos tablas una de países y otra de ciudades, cuando selecciones de una lista el país quiero que se carguen automaticamente las ciudades de ese país. El evento de cargar una lista dependiendo de otra se hace con javascript pero mis datos los obtengo de la base con php, tengo un código que les mando en el que está embebido el javascript en php, no se que estoy haciendo mal, cuando utilizo el mismo codigo en estático es decir no haciendo la consulta en php si funciona pero con la consulta ya no funciona.
El código es:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<!--<script>
var provincias_1=new Array("-","Andalucía","Asturias","Baleares","Canarias","Ca stilla y León","Castilla-La Mancha","...")
var provincias_2=new Array("-","Salta","San Juan","San Luis","La Rioja","La Pampa","...")
var provincias_3=new Array("-","Cali","Santamarta","Medellin","Cartagena","..." )
var provincias_4=new Array("-","Aisne","Creuse","Dordogne","Essonne","Giron de ","...") -->

<?php
include("connect.php");
$BDD=new DB;
$query="Select cod_pais,pais from pais";
$result=$BDD->query($query);

echo"<script>";
while($pais=mysql_fetch_row($result))
{

echo "var provincias_= $provincias_=".$pais[0]."= new Array(\"-\"";

$query2="Select cod_provincia_estado,provincia_estado from provincia_estado where cod_pais='$pais[0]'";
$result2=$BDD->query($query2);
while($provincia=mysql_fetch_row($result2))
{
echo ",\"".$provincia[1]."\"";

}
echo ")\n";
}
/*function in javascript that put the provinces in a <select>*/

echo"\n function cambia_provincia(){ \n";
//tomo el valor del select del pais elegido
echo"\n var pais
\n
pais = document.f1.pais[document.f1.pais.selectedIndex].value ";
//miro a ver si el pais está definido
echo"\n if (pais != 0) { ";
//si estaba definido, entonces coloco las opciones de la provincia correspondiente.
//selecciono el array de provincia adecuado
echo"\n mis_provincias=eval('provincias_' + pais) ";
//calculo el numero de provincias
echo"\n num_provincias = mis_provincias.length ";
//marco el número de provincias en el select
echo" \n document.f1.provincia.length = num_provincias ";
//para cada provincia del array, la introduzco en el select
echo"\n for(i=0;i<num_provincias;i++){
\n document.f1.provincia.options[i].value=mis_provincias[i]
\n document.f1.provincia.options[i].text=mis_provincias[i]
\n }
\n}else{ ";
//si no había provincia seleccionada, elimino las provincias del select
echo"\n document.f1.provincia.length = 1 ";
//coloco un guión en la única opción que he dejado
echo" \n document.f1.provincia.options[0].value = '-'";
echo" \n document.f1.provincia.options[0].text = '-'
\n } ";
//marco como seleccionada la opción primera de provincia
echo" \n document.f1.provincia.options[0].selected = true
}

</script>";
?>
<form name="f1">

<select name=pais onchange="cambia_provincia()">
<?php
$query="Select cod_pais,pais from pais";
$resultado=$BDD->query($query);
while($pais1=mysql_fetch_row($resultado))
{
echo"<option value='$pais1[0]'>$pais1[1]</option>";
}
echo"<option value='0' selected>Seleccione... ";
?>


<select name=provincia>
<option value="-">- </option>
</select>
</form>


</body>
</html>


Gracias
__________________
Maury
  #2 (permalink)  
Antiguo 13/05/2004, 07:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tienes un ejemplo implementado en PHP integro en las FAQ's de este foro .. ahí mismo se hace mención a otra técnica para conseguir tu propósito (y sin recarga de página como lo es la versión PHP integra) que denominan: "Remote scripting"

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 06:45.