Как опубликовать раскрывающееся значение в Node.js в базе данных MySQL с помощью EJS?

в моем проекте Node.js у меня есть функция публикации, с помощью которой я записываю данные в свою базу данных MySQL. Я хотел бы иметь некоторые значения в виде раскрывающегося списка на моей странице добавления. На данный момент я могу только записать все данные с текстовыми полями в базу данных MySQL.

Я уже создал выпадающие списки, но с ними я могу отображать только данные из соответствующих таблиц, но выбранное значение в функции поста не будет применяться, что бы я ни пробовал.

Функция GET и POST:

app.get('/add', function(req, res, next) {
    connection.query("SELECT DISTINCT platform_platform FROM platform; SELECT DISTINCT art_art FROM art;", [1, 2], function (error, result, fields) {
        if(error) {
            req.flash('error', error)
            res.render('games/add', {
                data: ''
            })
        } else {

    res.render('games/g-add', {
        data: result[0],
        data1: result[1],
        g_name: '',
        g_status: ''
    })
}
    });
})

app.post('/add', function(req, res, next) {
    req.assert('g_name').notEmpty()
    req.assert('g_status').notEmpty()

    var errors = req.validationErrors()

    if( !errors ) {

        var game = {
            g_name: req.sanitize('g_name').escape().trim(),
            g_status: req.sanitize('g_status').escape().trim()
        }

        connection.query('INSERT INTO games SET ?', game, function(err, result) {
            console.log(err);
            console.log(result.length);
            if(err) {
                req.flash('error', err)

                res.render('games/g-add', {
                    g_name: game.g_name,
                    g_status: game.g_status
                })
            } else {
                res.render('games/g-add',  {
                    g_name: '',
                    g_status: ''
                })
            }
        })
    } 
    else {
        var error_msg = ''
        errors.forEach(function(error) {
            error_msg += error_msg + '<br>'
        })
        req.flash('error', error_msg)

        res.render('games/g-add', {
            g_name: req.body.g_name,
            g_status: req.body.g_status
        })
    }
})

ЭДС:

<form action="/games/add" method="post">

....

<div class="form-group">
    <h4>Platform</h4>
    <select class="custom-select">
    <% for (var i = 0; i < data.length; i++) { %>
        <option>
           <%= data[i].platform_platform %>
        </option>
        <% } %>
    </select>
</div>

....

<div class="form-group">
   <label class="col-form-label" for="inputDefault">Name:</label>
   <input type="text" class="form-control" id="inputDefault" value="<%= g_name %>">
</div>

 ....

<input type="submit" value="POST" class="btn btn-danger">
</form>

Я просто знаю, что два раскрывающихся списка не включены в функцию POST, но я понятия не имею, как передать выбранные данные в функцию POST.

3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
0
2 321
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны добавить атрибут name в свой select. Например:

<div class="form-group">
    <h4>Platform</h4>
    <select name="platform" class="custom-select">
    <% for (var i = 0; i < data.length; i++) { %>
        <option>
           <%= data[i].platform_platform %>
        </option>
        <% } %>
    </select>
</div>

Теперь в вашей почтовой функции вы можете получить доступ к выбранной опции из объекта запроса.

app.post('/add', function(req, res, next) {
    ....
    var platform = req.body.platform;
    ....
})

Вы должны сделать то же самое при вводе имени, поскольку в нем также отсутствует атрибут name.

Другие вопросы по теме