Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/09/2014, 10:21
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Como implementar funcion Ajax-Autocomplete

Por eso mismo te digo que debes de pasar el id de cada caja de texto a la función, para que no ocurra el conflicto que se te está presentando. En mi anterior respuesta, te indiqué cómo enviar el id a la función, ahora, solo te queda recibir dicho dato en la función y así podrás tomar los valores de las cajas creadas dinámicamente. Probablemente no te haya funcionado la recomendación porque te faltó la implementación en la función. Solo te toca recibirla y tomar a la caja de texto por dicho identificador.

Código Javascript:
Ver original
  1. function loadXMLDoc(id){
  2.     var xmlhttp,
  3.         n = document.getElementById(id).value;
  4.  
  5.     //El resto de la función
  6. }

Como veo que también generas un <div> en el bucle, sería ideal que le asignes un id dinámico, así como lo haces con las cajas de texto y que también se lo pases a la función, quedando todo así:

Código PHP:
Ver original
  1. <?php
  2. $idDiv = 'div' . $sum;
  3. ?>
  4. <input type="text" id="<?php echo $bus; ?>"
  5. name="<?php echo $bus; ?>" onkeyup="loadXMLDoc('<?php echo $bus; ?>', '<?php echo $idDiv; ?>')" required />
  6. <div id="<?php echo $idDiv; ?>"> </div>

Código Javascript:
Ver original
  1. function loadXMLDoc(id, idDiv){
  2.     var xmlhttp,
  3.         n = document.getElementById(id).value;
  4.  
  5.     if (n == ''){
  6.         document.getElementById(idDiv).innerHTML = "";
  7.         return;
  8.     }
  9.  
  10.     if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
  11.         xmlhttp=new XMLHttpRequest();
  12.     }
  13.     else{// code for IE6, IE5
  14.         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  15.     }
  16.     xmlhttp.onreadystatechange=function(){
  17.         if (xmlhttp.readyState==4 && xmlhttp.status==200){
  18.             document.getElementById(idDiv).innerHTML=xmlhttp.responseText;
  19.         }
  20.         else{
  21.             document.getElementById(idDiv).innerHTML='<img src="load.gif" width="50" height="50" />';
  22.         }
  23.     }
  24.     xmlhttp.open("POST","index.php?ctl=buscarajax",true);
  25.     xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  26.     xmlhttp.send("q="+n);
  27. }

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 30/09/2014 a las 10:30 Razón: Las benditas comillas