JavaScript - Datalist en inputs creados por Ciclo for

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 37 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Datalist en inputs creados por Ciclo for

Publicado por Ricardo (5 intervenciones) el 06/01/2020 14:26:25
Hola a todos, buenos días.

Quiero saber si alguien puede ayudarme por favor.
Tengo este formulario creado con ciclo for en donde están los input del código y los input de la descripción del material. para los input de la descripcion les tengo asociado un datalist para que mediante este se pueda buscar en la base de datos un nuevo material y al seleccionar la opcion me cambie automaticamente el código. La conexión con la base de datos me funciona para todos los input, pero al momento de seleccionar una opcion en el datalist, sólo me funciona el datalist del primer item. Cómo puedo hacer en código Javascript que este me reconozca en qué input estoy realizando la búsqueda del datalist? El código que tengo es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
$cont=0;
$columnas2 = 0;
for($i=0;$i<count($cadena2);$i++){
		$cont++;
 
echo "<tr>";
echo "<td class='cuerpo' align='center' style='border: gray 1px solid;padding:2px'".$columnas2."'>";
echo "<input type=text style='width:120px; height:17px; text-align:center' name='COD_INT_MAT2' id='".$cadena2[$i]['ID_ITEM_SOL']."' value='".$cadena2[$i]['COD_INT_MAT']."' onclick='desbloquear()' />";
echo "</td>";
 
echo "<td class='cuerpo' align='center' style='border: gray 1px solid;padding:2px'".$columnas2."'>";
echo "<input list='descripcion_mat' type='text' style='width:400px; height:17px; text-align:left' name='DESC_MAT2' id='".$cadena2[$i]['ID_ITEM_SOL']."'  value='".$cadena2[$i]['DESC_MAT']."' onclick='desbloquear()' />";
	echo "<datalist id='descripcion_mat' name='descripcion_mat'>";
		$sql="SELECT * FROM tabla_materiales";
		$rec=mysqli_query($conex,$sql);
			while($row=mysqli_fetch_array($rec))
			{
			echo "<option value='".$row["DESC_MAT"]."'>";
			 echo $row['DESC_MAT'];
			echo "</option>";
								}
	echo "</datalist>";
				echo "</td>";
echo "</tr>";
 
<script type="text/javascript">
$(function(){
 
	//FUNCION PARA REALIZAR UNA ACCION AL HACER CLICK EN UN ELEMENTO DE DATALIST
document.querySelector('input[list="descripcion_mat"]').addEventListener('input', onInput);
 
function onInput(e) {
   var input = e.target,
       val = input.value;
       list = input.getAttribute('list'),
       options = document.getElementById(list).childNodes;
 
  for(var i = 0; i < options.length; i++) {
    if(options[i].innerText === val) {
      // An item was selected from the list!
      // yourCallbackHere()
 
	desc_mat = document.getElementsByName("DESC_MAT2")[5].value;
 
	document.form_items_solicitud.COD_INT_MAT2[5].value=desc_mat;
 
      break;
    }
  }
} //fin funcion onInput
 
 
});
</script>

Quedaré muy agradecido de cualquier ayuda que pueda recibir.

foto-php
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de José Manuel
Val: 33
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Datalist en inputs creados por Ciclo for

Publicado por José Manuel (11 intervenciones) el 14/01/2020 08:36:45
Hola:

Creo que me pierdo un poco. Por lo que veo tienes solamente un input asociado al datalist. Descríbenos de otra forma el problema para que podamos tenerlo más claro y poder ayudarte.

Cuéntanos. Un saludo,
https://obelearningservices.com/blog/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar