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 originalfunction loadXMLDoc(id){
var xmlhttp,
n = document.getElementById(id).value;
//El resto de la función
}
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<?php
$idDiv = 'div' . $sum;
?>
<input type="text" id="<?php echo $bus; ?>"
name="<?php echo $bus; ?>" onkeyup="loadXMLDoc('<?php echo $bus; ?>', '<?php echo $idDiv; ?>')" required />
<div id="<?php echo $idDiv; ?>"> </div>
Código Javascript
:
Ver originalfunction loadXMLDoc(id, idDiv){
var xmlhttp,
n = document.getElementById(id).value;
if (n == ''){
document.getElementById(idDiv).innerHTML = "";
return;
}
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById(idDiv).innerHTML=xmlhttp.responseText;
}
else{
document.getElementById(idDiv).innerHTML='<img src="load.gif" width="50" height="50" />';
}
}
xmlhttp.open("POST","index.php?ctl=buscarajax",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("q="+n);
}
Saludos