Ante todo estamos en el foro de javascript y lo que has mandado es una mezcla de php y javascript.
No se si eres consciente de que php trabaja del lado servidor y javascript del lado cliente...
Código PHP:
Ver original<?php require_once('Connections/pailinea.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Listas Dinamicas</title>
<script language="javascript">
function ComponerLista(xPro) {
document.forms.frmDatos.selCiudades.disabled = true;
document.forms.frmDatos.selPropiedades.length = 0;
CargarPropiedades(xPro);
document.forms.frmDatos.selCiudades.disabled = false;
}
function CargarPropiedades(xCiu) {
var o
document.forms.frmDatos.selPropiedades.disabled=true;
<?php
$tablaPropiedades = mysql_query('SELECT * FROM ciudades ORDER BY nombre ASC'); ?>
if (xCiu == <?php echo $registroPropiedad["cod_departamentos"]; ?>) {
o = document.createElement("OPTION");
o.text = '<?php echo $registroPropiedad["nombre"]; ?>';
o.value = <?php echo $registroPropiedad["cod_ciudades"]; ?>;
document.forms.frmDatos.selPropiedades.options.add (o);
}
<?php
}
?>
document.forms.frmDatos.selPropiedades.disabled=false;
}
</script>
</head>
<body>
<form id="frmDatos" name="frmDatos" method="post" action="">
<label>Puestos de Salud:
<select name="selCiudades" size="6" id="selCiudades" onchange="ComponerLista(document.forms.frmDatos.selCiudades[selectedIndex].value);">
<?php
$tablaCiudades = mysql_query('SELECT * FROM departamentos ORDER BY nombre ASC'); ?>
<option value="<?php echo $registroCiudad['cod_departamentos']; ?>"><?php echo $registroCiudad['nombre']; ?></option>
<?php
}
?>
</select>
</label>
<label>Centro de Costos:
<select name="selPropiedades" size="6" id="selPropiedades">
</select>
</label>
</form>
</body>
</html>
</body>
</html>
El resultado de las lineas 17 a 20 és una array (matriz) de php por tanto esta en el lado servidor no en el lado cliente.
Si entre las lineas 19 y 20 introduces esta linea quizas entenderas por que no te funciona:
print_r($registroPropiedad);
Esto nos hace una impresion del contenido del array, veras algo así
Array([0]->Array([campo]->[valor]...primer registro obtenido por la consulta)
[1]->Array([campo]->[valor]...segundo registro obtenido por la consulta)
...
)
Un array de arrays, en otras palabras una matriz multidimensional, por tanto para acceder al campo "cod_departamentos" del registro
X se debe hacer de la siguiente manera
$registroPropiedad
[X]["cod_departamentos"]
de ahi ya puedes intuir algun error que tienes.
Pero el peor error es intentar acceder desde javascript a un array php, simplemente ese array no esta en la maquina donde se ejecuta javascript si no en el servidor... por tanto
NO PUEDES ACCEDER A EL.
Javascript y php no se ejecutan en el mismo momento. En el caso que nos ocupa en el momento que actua javascript el
array php ya no existe!!!
Es decir, cuando pides cargar la pagina el cliente manda una peticion al servidor, este ejecuta las partes php de tu codigo y confecciona un resultado estatico que manda al cliente, en este momento el cliente puede trabajar mediante javascript con lo que le ha mandado el servidor, como las lineas 17 a 20 no dan ningun resultado "imprimible" el cliente no recibe nada luego no podrá acceder a nada...
Si miras el codigo funte de la pagina mediante la opcion de tu navegador (en FIREFOX botón derecho>Código fuente de la pagina) verás lo que se ha recibido...
Antes de acceder debes pedir al servidor que pase los datos al lado cliente, creando un array multidimensional javascript con el contenido del array php. Luego javascript podrá acceder al array y todo funcionará...
Pasar array de php a javascript
Despues tendrás que modificar el javascript para que acceda a los valores del array javascript...
Intentalo, y cuando te encalles en algo pregunta.