https://jsfiddle.net/8mw2q5tv/3/
Lo que hace esta funcion es que yo tengo una tabla con ID="table1" en esta tabla se crean los input dinamicos pero para que estos se creen tengo que mandar llamar una funcion al presionar la tecla enter dentro de un input en este caso seria el input llamado IVA, estos input text dinamicos tienen un id con un incremento llamado "idd",
este incremento le asigna un numero al id cada vez que se crea una fila de input text dinamicos.
Todo esto funciona correctamente de hecho en el ejemplo al presionar la tecla ENTER sobre el INPUT llamado IVA vemos como se despliega una lista nueva de inputs.
Ahora va mi problema:
Tengo una función de búsqueda instantánea con ajax, esta funcion se manda llamar al escribir en el input llamado articulo, lo que hace es que al escribir texto la funcion manda llamar a la base de datos el nombre que coincida con el escrito en articulo, y si alguno coincide muestra los datos que contenga ese articulo ya sea (CANTIDAD,IMPORTE,DESCUENTO,IVA).
FUNCION BUSCAR1()
Código Javascript :
function buscar1() { var textoBusqueda1 = $("input#ArtInput"+idd).val(); if (textoBusqueda1 != "") { $.post("buscar1.php", {valorBusqueda1: textoBusqueda1}, function(mensaje1) { $("#resultadoBusqueda1").html(mensaje1); }); } else { $("#resultadoBusqueda1").html('<p>JQUERY VACIO</p>'); $("input#a"+idd).val(''); $("input#b"+idd).val(''); $("input#c"+idd).val(''); $("input#d"+idd).val(''); }; };
BUSCAR1.PHP
Código PHP :
<script src="js/jquery-1.12.3.min.js"></script> <?php //Archivo de conexión a la base de datos ini_set('display_errors', 1); error_reporting(E_ALL); /* Connect using SQL Server Authentication. */ $conn = mssql_connect(' ', ' ', ''); mssql_select_db('PRUEBA',$conn); //Variable de búsqueda $consultaBusqueda1 = $_POST['valorBusqueda1']; $mensaje1 = ""; if (isset($consultaBusqueda1)) { //Selecciona todo de la tabla mmv001 //donde el nombre sea igual a $consultaBusqueda, //o el apellido sea igual a $consultaBusqueda, //o $consultaBusqueda sea igual a nombre + (espacio) + apellido $consulta1 = mssql_query("SELECT * FROM REGISTROS WHERE ARTICULO LIKE '%$consultaBusqueda1%'"); echo $consulta1; //Obtiene la cantidad de filas que hay en la consulta $filas1 = mssql_num_rows($consulta1); //Si no existe ninguna fila que sea igual a $consultaBusqueda, entonces mostramos el siguiente mensaje if ($filas1 === 0) { $mensaje1 = "<p>NOT FOUND</p>"; } else { //Si existe alguna fila que sea igual a $consultaBusqueda, entonces mostramos el siguiente mensaje //La variable $resultado contiene el array que se genera en la consulta, así que obtenemos los datos y los mostramos en un bucle while($resultados1 = mssql_fetch_array($consulta1)) { $Art1 = $resultados1['ARTICULO']; $Cant1 = $resultados1['CANTIDAD']; $Impor1 = $resultados1['IMPORTE']; $Desc1 = $resultados1['DESCUENTO']; $Iva1 = $resultados1['IVA']; echo $Art1; ?> //AQUI LE DIGO QUE MUESTRE LOS DATOS EN LOS INPUTS BASADO EN LAS COINCIDENCIAS DE ARTICULO <script type="text/javascript"> document.getElementById("a"+idd).value = '<?php echo $Cant1 ?>'; document.getElementById("b"+idd).value = '<?php echo $Impor1 ?>'; document.getElementById("c"+idd).value = '<?php echo $Desc1 ?>'; document.getElementById("d"+idd).value = '<?php echo $Iva1 ?>'; </script> <?php };//Fin while $resultados }; //Fin else $filas };//Fin isset $consultaBusqueda //Devolvemos el mensaje que tomará jQuery ?>
Si presiono la tecla enter varias veces para crear varios inputs dinamicos en blanco y despues trato de rellenar cada uno llamando la funcion buscar1() al escribir en articulo, la funcion solo sirve en el ultimo renglon de inputs creados.
por ejemplo si creo 5 filas de inputs en blanco, la funcion solo sirve en la quinta fila, esto es debido a que el contador 'idd' manda el ultimo, y quiero que escriba a donde estoy pocisionado.
supongo que mi error esta en buscar1.php, en la funcion que muestra los datos en los inputs con los id+incremento