Voy a tratar de ser lo mas claro y conciso posible.
Este código es el tipico autocompletar cuando uno ingresa una letra en el input, tipo google.
Todo funciona bien, excepto cuando la letra comienza en a, c y otras. En la base de datos existen nombres que comienzan con a y c , y como dato anexo puedo agregar que en Mozilla estas letras funcionan bien y entrega la lista como se debe, el problema es en IE.
Tengo un archivo.php, el cual al ejecutarse arma un xml con nombres buscados en una base de datos.
archivo.php, resumido, la consulta sql esta bien.
Código PHP:
// Devuelvo el XML con la palabra que mostramos (con los '_') y si hay éxito o no
$xml = '<?xml version="1.0" standalone="yes"?>';
$xml .= '<datos>';
foreach ($datos as $dato) {
if (strpos(strtoupper($dato), strtoupper($texto)) === 0 OR $texto == "") {
$xml .= '<nombre>'.$dato.'</nombre>';
}
}
$xml .= '</datos>';
header("Content-type: text/xml");
echo $xml;
Código:
Como mencioné antes el problema es de IE que por alguna razón que no he podido descubrir, algunas letras no las pasa al var datos = ajax.responseXML. Pero existen en la base de datos y en Mozilla funciona correctamente, en Mozilla todas las letras funcionan.if(ajax.readyState==4){ var datos = ajax.responseXML; //busca por las etiquetas creadas en el xml, en este caso la etiqueta <nombre> var nombres = datos.getElementsByTagName("nombre"); if (nombres) { for (var i=0; i<nombres.length; i++) { //se ingresa en el arrelgo el valor de cada etiqueta <nombre> //creado en el xml. listaNombres[listaNombres.length] = nombres[i].firstChild.data; } } //muestra la lista de nombres escribeLista(obj, listaNombres); }
Cualquier tips es agradecido. Muchas gracias.