Hola!
 
En Firefox y Safari funciona pero en Explorer no me funciona el defaultSelected cuando recibe los datos de la BBDD. Por ejemplo, si el registro tiene País: 
España, Ciudad: 
Toledo. Pues el país lo pone bien pero la ciudad me pone la primera del listado; esto solo ocurre con Explorer ¿alguna idea?:  
 Código PHP:
    
<?php
// Saco el listado de países
 
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[0] = new Option("<?=$nombre_ciudad?>","<?=$id_ciudad_com?>","defaultSelected","");} // Si tiene ciudad, la selecciono
    indice++;
    }
<?php } ?>
}
</script>
<?php
echo "<select name='id_ciudad' style='width:186px;' id='id_ciudad'>\n";
echo "<option value=''>--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";
?>