Uso la siguiente funcion para rellenar las opciones de un select:
function tipos_inmueble(elemento, reset_ids, id_comunidad) {
// Set up the request
var xmlHttp = XmlHttp.create();
xmlHttp.open('POST', '/includes/inicio/buscador/select_tipo_inmueble.php', true);
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
document.getElementById(elemento).innerHTML = xmlHttp.responseText;
document.getElementById('debug').value= xmlHttp.responseText;
document.getElementById('debug2').value= document.getElementById(elemento).innerHTML;
}
};
document.getElementById(elemento).innerHTML = "<option>Cargando...</option>";
// llamada en otro hilo para permitir actualizar el interfaz
window.setTimeout(function () {
xmlHttp.send('id_comunidad='+id_comunidad);
}, 10);
document.getElementById(elemento).disabled=false;
/*
for (i=0;i<reset_ids.length;i++){
document.getElementById(reset_ids[i]).disabled = false;
}
*/
}
La respuesta es correcta en firefox pero en opera y IE6 obtengo valores diferentes en document.getElementById(elemento).innerHTML al efecturar la siguiente orden: document.getElementById(elemento).innerHTML = xmlHttp.responseText;
En firefox el innerHTML tiene:
<option value="-1">todos...</option>
<option value="02">Ático</option>
<option value="01">Apartamento</option>
<option value="35">Piso</option>
<option value="36">Planta baja</option>
En IE6:
todos...</OPTION> <OPTION value="02">Ático</OPTION> <OPTION value="01">Apartamento</OPTION> <OPTION value="35">Piso</OPTION> <OPTION value="36">Planta baja</OPTION>
En Opera:
<OPTION value="-1">todos...
<OPTION value="02">Ático
<OPTION value="01">Apartamento
<OPTION value="35">Piso
<OPTION value="36">Planta baja
El fichero php que genera el contenido tiene el siguiente codigo:
<? require $_SERVER['DOCUMENT_ROOT']."/zonaprivada/includes/global.lib.php"; ?>
<?
//sacamos los tipos de inmueble de las viviendas en venta
$sql="
SELECT
DISTINCT
tipos_inmueble.nombre as tipo_inmueble,
tipos_inmueble.uuid_tipo_inmueble as uuid_tipo_inmueble
FROM
comunidades_autonomas,
provincias,
promociones,
promociones_viviendas,
tipos_inmueble
WHERE
promociones_viviendas.estado='En venta' AND
promociones_viviendas.uuid_tipo_inmueble=tipos_inm ueble.uuid_tipo_inmueble AND
promociones_viviendas.id_promocion= promociones.id_promocion AND
promociones.id_provincia=provincias.id_provincia AND
provincias.id_comunidad=comunidades_autonomas.id_c omunidad AND
comunidades_autonomas.id_comunidad='".$_POST["id_comunidad"]."'
ORDER BY
tipos_inmueble.nombre
";
$consulta=mysql_query($sql);
?>
<option value="-1">todos...</option>
<?
while($registro=mysql_fetch_object($consulta)) {
?>
<option value="<?=$registro->uuid_tipo_inmueble;?>"><?=$registro->tipo_inmueble;?></option>
<?
}
?>
A ver si alguien me orienta un poco porque estoy perdido.