В настоящее время я использую NodeJS с шаблонами ejs и базой данных mySQL. Я создал ejs, который может динамически печатать таблицу, представляющую таблицу в базе данных:
Код выглядит так:
<% for(var i=0; i<info.length; i++) {%>
<tr>
<td><b><%= info[i].id %></b></td>
<td><%= sinfo[i].path %></td>
</tr>
<% } %>
Это работает нормально.
Где-то в том же ejs можно найти форму с полем ввода.
Выглядит так:
<input type = "text" name = "id" placeholder = "id input"required>
Теперь я хочу создать кнопку в каждой строке таблицы. При нажатии кнопки идентификатор из столбца, в котором находится кнопка, должен быть заполнен в моем поле формы. Таким образом, в каждой строке будет одна кнопка!
Я не могу найти способ сделать это.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это должно работать:
<% for(var i=0; i<info.length; i++) {%>
<tr>
<td><b><%= info[i].id %></b></td>
<td><%= info[i].path %></td>
<td><input type = "button" onclick = "document.getElementById('myText').value='<%= info[i].id %>'" value = "Click" /></td>
</tr>
<% } %>
Затем установите идентификатор myText для вашего входного текста:
<input type = "text" name = "id" id = "myText" placeholder = "id input">
Более чистое решение - создать функцию где-нибудь в вашем коде javascript:
function onClick(id){
document.getElementById('myText').value=id;
}
И поэтому ваш код ejs будет:
<% for(var i=0; i<info.length; i++) {%>
<tr>
<td><b><%= info[i].id %></b></td>
<td><%= info[i].path %></td>
<td><input type = "button" onclick = "onClick('<%= info[i].id %>')" value = "Click" /></td>
</tr>
<% } %>