Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.06.2022, 05:07
Аспирант
Отправить личное сообщение для Jimy Посмотреть профиль Найти все сообщения от Jimy
 
Регистрация: 21.03.2019
Сообщений: 64

Вопрос по форме редактирования товара
Добрый день! Пытаюсь сделать форму для редактирования товара. Три таблицы - товары, категории, единицы измерения.
Товары (Good):
id;
title - наименование:
id_unit - ключ ед.изм;
id_category - ключ категории;

Категории (Category):
id;
title - наименование категории;
image - путь к картинке;

Ед.изм. (Unit):
id;
title - наименование;
Вот делаю запросы:
//Получение записи для редактирования

router.get("/edit/:id", (req, res) => {
  const sqlCat=("SELECT * FROM Category ORDER BY title")
  const sqlUnit=("SELECT * FROM Unit ORDER BY title")
  const id = req.params.id;
  const sqlGood = "SELECT * FROM Good WHERE id = ?";
  db.all(sqlUnit, [], (err, rows) => {
    if (err) {
      return console.error(err.message);
    }
    Izm=rows;
     });
db.all(sqlCat, [], (err, rows) => {
    if (err) {
      return console.error(err.message);
    }
    Cat=rows;
     }); 
db.get(sqlGood, id, (err, row) => {
        res.render("spr_good/updateGood", { good: row, cat : Cat, izm:Izm  });
    });
  });


...и вывожу страницу для редактирования записи:
<%- include("../baseHeader") -%>
<div class="col-md-10  shadow ">
    <div class="row">
    <div class="col-12 text-center menu-text"><h4 class="mb-3">Номенклатура</h4></div>
    <div class="col-1"></div>
    <div class="col-10">
      
        <form action="/good/edit/<%=good.id %>" method="post" >
    
            <legend class="legend">Редактирование</legend>
    <input autofocus class="form-control mb-2" name="Good" value="<%= good.title %>" required/>
    <p>
      <legend class="legend">Единица измерения</legend>
      <select id="izm" name="Izm" class="form-control">
          <% for (const item of Izm) { %>
              <option value='<%= item.id %>'> <%= item.title %></option>
          <% } %>    
      </select>     
         
     
    
       <legend class="legend">Категория</legend>
          <select id="Cat" name="Cat" class="form-control">
              <% for (const item of Cat) { %>
                  <option value='<%= item.id %>'> <%= item.title %></option>
              <% } %>    
          </select>
    
      </p>
      
      
  
    <div class="text-right">
    <button type="submit" class="btn btn-warning  btn-sm">Изменить</button>
    <a class="btn btn-secondary btn-sm " href="/good">Отмена</a>
    </div>

    </form>
    </div>
    <div class="col-1"></div>
  </div>
  </div>

<%- include("../_footer") -%>

Все выводится, в первое поле встает нужное наименование, но как вывести единицу измерения и категорию в раскрывающиеся списки. Чтобы в списке сразу отображалась единица и категория выбранного товара, а в данный момент там первые строчки из соответствующих таблиц... И еще, как можно оптимизировать запрос - сейчас там у меня три запроса идут... Прощу не пинать - новичок
База данных - SQLITE
Ответить с цитированием
  #2 (permalink)  
Старый 23.06.2022, 08:50
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Jimy
как вывести единицу измерения и категорию в раскрывающиеся списки. Чтобы в списке сразу отображалась единица и категория выбранного товара, а в данный момент там первые строчки из соответствующих таблиц...
У нужного option добавить selected.
<option selected>...</option>
Ответить с цитированием
  #3 (permalink)  
Старый 23.06.2022, 08:53
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Jimy
как можно оптимизировать запрос - сейчас там у меня три запроса идут..
Можно использовать соединения...
https://function-x.ru/sql_join.html
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложный рандом Сергей Ракипов Общие вопросы Javascript 21 11.06.2022 14:59
Рандом вопросов мини-теста RIMINI Общие вопросы Javascript 2 08.05.2020 15:37
У меня есть вопрос rzhsasha Firefox/Mozilla 29 08.12.2010 18:48
Результат вычислений в экспоненциальной форме Sharp Общие вопросы Javascript 19 02.04.2009 21:59
Обращение к форме октрытого окна SparkDSD Events/DOM/Window 3 27.02.2009 14:02