Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/10/2011, 10:45
mariannairam
 
Fecha de Ingreso: julio-2010
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 2
Pregunta Menús dependientes php javascript

Hola!

Estoy haciendo lo siguiente:

Código PHP:
<?php
echo "<select name='id_pais' style='width:186px;' id='id_pais' onChange='componCiudades(this.value)'>\n";
echo 
"<option value=''>--País--</option>";
while (
$row_pais_list $result_pais_list->fetch_assoc()){
    
$id_pais_com $row_pais_list["id_pais"];
    
$nombre_pais $row_pais_list["nombre"];
    echo 
"<option value='" .$id_pais_com"'";
    if (
$id_pais_com==$id_pais) echo " selected='selected' ";
    echo 
">" .$nombre_pais"</option>\n";
}

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

<script>
function componCiudades($id_pais_com){
document.formulario.id_ciudad.length=0;
document.formulario.id_ciudad.options[0] = new Option("-- Ciudad --","","defaultSelected","");
var indice=1;

<?php
while($row_ciudad_list $result_ciudad_list->fetch_assoc()){ 
    
$nombre_ciudad $row_ciudad_list["nombre"];
    
$id_ciudad_com $row_ciudad_list["id_ciudad"];
    
$id_pais_com_city $row_ciudad_list["id_pais"];
?>
if($id_pais_com=='<?=$id_pais_com_city?>'){
    document.formulario.id_ciudad.options[indice] = new Option("<?=$nombre_ciudad?>","<?=$id_ciudad_com?>");
    if($id_ciudad_com=='<?=$id_ciudad?>'){document.formulario.id_ciudad.options[indice] = new Option("<?=$nombre_ciudad?>","<?=$id_ciudad_com?>","defaultSelected","");}
    indice++;
    }
<?php ?>
}
</script>

<?php
echo "<select name='id_ciudad' style='width:186px;' id='id_ciudad' onChange='componPoblaciones(this.value)'>\n";
echo 
"<option>--Ciudad--</option>\n";
    
// Si existe el país, saco el listado de sus ciudades
    
if ($id_pais!='') echo "<script>componCiudades('".$id_pais."');</script>";
echo 
"</select>\n\n";
?>
Funciona casi, lo que quiero es que al recoger el dato de la ciudad a la que pertenece el registro me lo ponga como seleccionado, sé muy poco de javascript y no consigo hacerlo ¿alguien me ayuda? La línea que debería hacerlo sería la que pone:

Código HTML:
<script>
if($id_ciudad_com=='<?=$id_ciudad?>'){document.formulario.id_ciudad.options[indice] = new Option("<?=$nombre_ciudad?>","<?=$id_ciudad_com?>","defaultSelected","");}
</script> 
Pero no funciona... de hecho al poner esta línea me estropea el funcionamiento correcto...

Gracias!