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. 
   
 
 Bastante raro lo que pasa. Estoy perdido ...
 Bastante raro lo que pasa. Estoy perdido ... 
