首页 > 解决方案 > 对 js if 语句使用 ejs 输入

问题描述

我有一个需要为课程做的代码问题。我有一个有用户的数据库,另一个表有用户可以访问的标题。我正在尝试创建一个页面,他们可以在其中编辑用户,当他们单击按钮时,表单会自动填充 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;
      }
  }

标签: javascripthtmlnode.jssqliteejs

解决方案


将您的 javascript 代码包装到<script>标签中。

<script>
//Your code goes here
</script>

推荐阅读