Показать разные записи в таблице при нажатии кнопки - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть веб-сайт, где у меня есть два элемента div, которые действуют как кнопки. У меня есть две таблицы в моей базе данных, а именно «пользователи» и «магазины». Я хотел бы показать таблицы на основе нажатия кнопки. Есть ли способ добиться этого без перезагрузки страницы и, если возможно, без использования ajax.

Ниже приведен код, который я использовал для кнопок.

<html>

<head>
</head>

<body>
  <div class="btn_container">
    <div class="buttons" id="btn_products"><i class="fas fa-store"></i>
      <h1 class="products_text">Total Products</h1>
    </div>
    <div class="buttons" id="btn_users"><i class="fas fa-users"></i>
      <h1 class="users_text">Total Users</h1>
    </div>
    <div class="buttons">btn3</div>
  </div>
  <div class="table_container">
    <!--the table should be loaded here-->
  </div>
</body>

</html>

1 Ответ

0 голосов
/ 19 апреля 2020

Если вы не хотите использовать Ajax, у вас нет другого выбора иметь все таблицы в вашем коде HTML при загрузке страницы.

Вот что я предлагаю

const tables = [...document.getElementsByClassName('table')];

[...document.getElementsByClassName('buttons')].forEach(button => {
  button.addEventListener('click', evt => {
    const id = button.id.replace('btn_', '');
    tables.forEach(table => {
      table.style.display = table.id === id ? 'block' : '';
    });
  });
});
.table {
  display: none;
}
<div class="btn_container">
  <div class="buttons" id="btn_products"><i class="fas fa-store"></i>
    <h1 class="products_text">Total Products</h1>
  </div>
  <div class="buttons" id="btn_users"><i class="fas fa-users"></i>
    <h1 class="users_text">Total Users</h1>
  </div>
  <div class="buttons">btn3</div>
</div>
<div class="table_container">
  <table class="table" id="products">
    <tbody>
      <tr>
        <th>Table products</th>
      </tr>
    </tbody>
  </table>
  <table class="table" id="users">
    <tbody>
      <tr>
        <th>Table users</th>
      </tr>
    </tbody>
  </table>
</div>

Обратите внимание, что если вы хотите, чтобы одна из двух таблиц отображалась при загрузке страницы, измените CSS на

#products /* #users */ {
   display: none 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...