【发布时间】:2020-09-24 05:51:17
【问题描述】:
我有一个需要为课程做的代码问题。我有一个有用户的数据库,另一个表有用户可以访问的标题。我正在尝试创建一个页面,他们可以在其中编辑用户,当他们单击按钮时,表单会自动填充 id、名字和姓氏。
现在我正在尝试显示所选用户目前可以访问的访问权限。而我认为只是一个简单的 if 语句变得令人头疼,似乎我无法访问要插入的 html 代码中的 id 变量,当我尝试将 if 语句放在外面时,它说错误使用 http 标头,就像它发送太多渲染一样。我怎样才能做到这一点?
所以这里的代码可以工作,但它会加载所有用户的标签,但我想根据 id 过滤结果。
<tbody>
<% all_users_to_modify.forEach(function(row){ %>
<tr>
<td>
<button class="btn btn-primary m-b-0"
onClick="fillForm('<%= row.id %>','<%= row.f_name %>','<%= row.l_name %>');";
onclick="moneyCalc('<%= row.id %>')" >
<%= row.id %>
</button>
</td>
<td><%= row.f_name %></td>
<td><%= row.l_name %></td>
<td><%= row.email %></td>
<td><%= row.phone_number %></td>
</tr>
<% }); %>
</tbody>
<table class="table table-striped table-bordered nowrap">
<thead>
<tr>
<th>Acceso</th>
</tr>
</thead>
<tbody id="lastResult">
</tbody>
</table>
function moneyCalc(id) {
'use strict';
var id = document.getElementById('id').value;
if (id) {
var html_to_insert = `
<% list_of_all_users_tabs.forEach(function(row1){ %>
<tr>
<td><%= row1.tab_name %> </td>
</tr>
<% }); %>
`;
lastResult.innerHTML += html_to_insert;
}
}
现在这就是我想要做的,在 list_of_all_users_tabs 的每一行中都有一个列是 user_id,另一列是 tab_name。所以我有两个想法,但似乎都没有。
第一个想法是放置一个while循环来比较数据库中的user_id和输入id但是我得到:错误[ERR_HTTP_HEADERS_SENT]:
function moneyCalc(id) {
'use strict';
var id = document.getElementById('id').value;
if (id) {
while(list_of_all_users_tabs.user_id == id) {
var html_to_insert = `
<% list_of_all_users_tabs.forEach(function(row1){ %>
<tr>
<td><%= row1.tab_name %> </td>
</tr>
<% }); %>
`;
lastResult.innerHTML += html_to_insert;
}
}
}
第二个想法在 html 代码中有一个 if 语句,但是它说 id not defined:
function moneyCalc(id) {
'use strict';
var id = document.getElementById('id').value;
if (id) {
var html_to_insert = `
<% list_of_all_users_tabs.forEach(function(row1){ %>
<% if(row1.id == id) { %>
<tr>
<td><%= row1.tab_name %> </td>
</tr>
<% } %>
<% }); %>
`;
lastResult.innerHTML += html_to_insert;
}
}
【问题讨论】:
-
第一件事,将你的函数包装在 标签内
-
是的,我认为我只会包含必要的代码,它们都包含在 ejs 文件底部的脚本中。
-
我发布了一个答案,它对其他人也有帮助,所以接受这个答案。
标签: javascript html node.js sqlite ejs