Hola mount, muchas gracias, aprecio mucho tu ayuda. Me sirvió la observación, al menos en parte.
Me parecía raro que haya quedado ese if fuera de la función. Lo corregí como señalaste, pero sigue sin funcionar. En cualquier caso, pudo haber ayudado pero creo que el verdadero problema sigue estando en otra parte.
Ahora acabo de confirmar que el problema de FF está en esta parte del código:
Código:
var result = document.getElementById("result");
var lista = document.getElementById("listaNombres");
var respuesta = '';
var opciones = new Array();
var valores = new Array();
if (request.status == 200) {
respuesta = request.responseText;
opciones = respuesta.split(';'); //separo grupos de nombres/ids por punto y coma
lista.options.length = 0;
for (var i = 0; i < opciones.length; i++) { //actualizamos el select con cada elemento obtenido
valores = opciones[i].split(','); //separo nombre e id por coma
anOption = document.createElement("option");
lista.options.add(anOption, 0);
anOption.innerText = valores[0]; //The text for the option
anOption.Value = valores[1]; //The option's value
}
lista.options.selectedIndex = 0;
result.innerHTML = "<b>Selecciona la persona. Si no lo encuentras, prueba otra búsqueda.</b>";
}
Estoy seguro que el problema está ahi, porque hice unas pruebas y el envío y recepción de variables funciona bien.
Doy un ejemplo de la cadena que envía el php:
'abc,23;defgh,56;ijklmn,13;opqrstu,33'
Entonces, la idea es que ese código separe primero por puntos y comas a un array:
'abc,23' 'defgh,56' etc
y luego cada elemento lo vuelve a separar: 'abc' '23'
En este caso, 'abc' sería el texto de la primer opción del SELECT, y 23 sería el valor de esa opción.
¿Alguien sabrá decirme por qué ese código no funciona en Firefox? ¿Será que usé alguna función que no soporta este navegador?
Sospecho que el problema está o en la definición de las variables, o dentro del for. Porque no está creando las opciones, pero sí circula por el for sin problemas.