Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   MySql+<Select><Option> (https://javascript.ru/forum/node-js-io-js/71687-mysql-select-option.html)

kolfer 05.12.2017 16:40

MySql+<Select><Option>
 
Доброго времени суток, есть сайт, заполняя данные на котором, формируется запрос. Сейчас результат выводится в консоль.
Как засунуть результаты выполнения запроса(2,3, записи ФИ) в автоматически созданный тег <select><option>. Ниже привожу готовую часть кода.
<!DOCTYPE html>
<html>
<head>
    <title>Теория</title>
    <meta charset="utf-8" />
</head>
<body>
<h1>Введите данные</h1>
<form action="/evaluation" method="post" >
    <label>Введите год</label><br>
    <input type="text" name="year" /><br><br>
    <label>Секция</label>
    <select name="section">
        <option value="Не участвует">Не участвует</option>
        <option value="ТМ">Техническое моделирование(ТМ)</option>
        <option value="ТК">Техническое конструирование(ТК)</option>
        <option value="РЭ">Радиоэлектроника (РЭ)</option>
        <option value="НИЭ">Научные исследования и эксперимент (НИЭ)</option>
        <option value="ИВТ">Информатика и вычислительная техника (ИВТ)</option>
        <option value="МТ">Мультимедийные технологии (МТ)</option>
    </select><br><br>
    <input type="submit" value="Отправить"/>
</form>
</body>
<html>

var express = require("express");
var bodyParser = require("body-parser");
var app = express();
var mysql = require('mysql');

var urlencodedParser = bodyParser.urlencoded({extended: false});

app.use(express.static(__dirname + "/public"));

app.post("/evaluation", urlencodedParser, function (request, response) {
    if (!request.body) return response.sendStatus(400);
    console.log(request.body);
    response.send('Complete');
    year=request.body.year;
    section = request.body.section;
    var con = mysql.createConnection({
        host: "localhost",
        user: "Professor",
        password: "Professor123",
        database: "cotc"
    });
    con.connect(function(err) {
        if (err) throw err;
        con.query("select theory.Surname,theory.Name,custumers.Class from theory,custumers where ((theory.id=custumers.id) and (custumers.Section='"+section+"')) and(custumers.Year='"+year+"')",
            function (err, result, fields) {
            if (err) throw err;
            console.log(result);// вот тут задаю в консоль, но надо то на экран
        });
    });
});

app.listen(8081,console.log("8081"));

destus 05.12.2017 18:14

kolfer,
если ajax запрос и всё работает по REST, то response.json(result) и на клиенте динамически добавлять опции в селект. Если с полной перезагрузкой страницы, то response.render('имя_шаблона').

kolfer 06.12.2017 13:21

С AJAX не знаком близко, так что определенно второй вариант. Прочел про него по вашей ссылке, но не особо понял как использовать. Не могли бы вы привести пример задачи, схожий на мой?


Часовой пояс GMT +3, время: 16:46.