Получение непроверенных значений флажков - PullRequest
0 голосов
/ 11 марта 2020

Итак, у меня есть этот код

//Admin Panel Page
router.get('/admin', ensureAuthenticated, async (req, res) => {
    if (req.user.admin !== true){
        req.flash('error_msg', 'You do not have access to reports, sorry.');
        res.render('dashboard', {
            name: req.user.name
        })
    }
    else{
        try {
            var adminArray = [];
            var html = "<link rel='stylesheet' href='/css/freelancer.css' type='text/css'/>" +
                        "<script src='https://code.jquery.com/jquery-3.4.1.slim.min.js' integrity='sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n' crossorigin='anonymous'></script>" +
                        "<nav class='navbar navbar-expand-lg bg-secondary text-uppercase fixed-top' id='mainNav'><div class='container'>" +
                        "<a class='navbar-brand js-scroll-trigger' href='/dashboard'>Chinook Winds Logistics LLC</a>" +
                        "<button class='navbar-toggler navbar-toggler-right text-uppercase font-weight-bold bg-primary text-white rounded' type='button' data-toggle='collapse' data-target='#navbarResponsive' aria-controls='navbarResponsive' aria-expanded='false' aria-label='Toggle navigation'>Menu<i class='fas fa-bars'></i></button>" +
                        "<div class='collapse navbar-collapse' id='navbarResponsive'><ul class='navbar-nav ml-auto'><li class='nav-item mx-0 mx-lg-1'><a href='/admin' class='btn btn-primary'>Admin Panel</a></li><li class='nav-item mx-0 mx-lg-1'>" +
                        "<a href='/reports' class='btn btn-primary'>Reports</a></li><li class='nav-item mx-0 mx-lg-1'><a href='/users/logout' class='btn btn-primary'>Logout</a>" +
                        "</li></ul></div></div></nav>< br/><body><script src='https://kit.fontawesome.com/4a2ea255d5.js' crossorigin='anonymous'></script><div class='container-blog'><table class='table-primary table-bordered table' style='border-spacing: 10px;'>"+
                        "<tr><th>Users Name</th><th>Email Address</th><th>Truck Driver</th><th>Truck Number</th><th>Admin</th><th>Customer</th><th>Load Planner</th><th>Deactivate Account?</th></tr><tr><form action='/admin' method='post'>";
            await User.find({isVerified: true}, function(err,resp){
                if(err){
                    console.log('Error Fetching Model');
                    console.log(err);
                }
                adminArray = resp;
                adminArray.forEach(function(data){
                    html += "<td>" + data.name + "</td>";
                    html += "<td>" + data.email + "</td>";
                    html += "<td><input type='hidden' name=truckDriver value=''><input class='form-control' name='truckDriver' type='checkbox' value=" + data.email + "></input></td>";
                    html += "<td><input class='form-control' name='truckNumber' type='number'></input></td>";
                    html += "<td><input type='hidden' name=admin value=''><input class='form-control' name='admin' type='checkbox' value=" + data.email + "></input></td>";
                    html += "<td><input type='hidden' name=customer value=''><input class='form-control' name='customer' type='checkbox' value=" + data.email + "></input></td>";
                    html += "<td><input type='hidden' name=loadPlanning value=''><input class='form-control' name='loadPlanning' type='checkbox' value=" + data.email + "></input></td>";
                    //html += "<td><input class='form-control' name='deactivate' type='checkbox' value=" + data.email + "></input></td>";
                    html += "</tr><tr>";
                });
                html += "</tr></table><input class='btn btn-primary' type='submit'></input></form></div></body>";
                html += "<script src='js/freelancer.js'></script>";
                html += '<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script><script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script><script src="public/js/freelancer.js"></script><script src="public/js/jqBootstrapValidation.js"></script><script src="public/js/contact_me.js"></script>';
                res.send(html);
            })
        }
        catch (e){
            res.send('error_msg');
            console.log(e);
        }
    }
});

Это создает таблицу всех проверенных пользователей. Это ...

// Admin Update Panel
router.post('/admin', ensureAuthenticated, async (req, res) => {
    try {
        const { truckDriver, truckNumber, admin, customer, loadPlanning } = req.body;
        await User.find({isVerified: true}, function(err,data){
            adminArray = data;
            console.log(req.body);
            q = 1;
            adminArray.forEach(async (data, res) =>{
                if(truckDriver[q] == data.email){
                    await User.findOneAndUpdate({email: data.email}, {truckDriver: true}, {useFindAndModify: false});
                }
                if(admin[q] == data.email){
                    await User.findOneAndUpdate({email: data.email}, {admin: true}, {useFindAndModify: false});
                }
                if(customer[q] == data.email){
                    await User.findOneAndUpdate({email: data.email}, {customer: true}, {useFindAndModify: false});
                }
                if(loadPlanning[q] == data.email){
                    console.log(yes);
                    await User.findOneAndUpdate({email: data.email}, {loadPlanning: true}, {useFindAndModify: false});
                }
                q = q + 2;
                console.log(q);
            });
        });
        req.flash('success_msg', 'Your accounts have been processed!');
        res.redirect('/admin');
    }
    catch (e){
        res.send('error_msg');
        console.log(e);
    };
});

Предполагается перебирать отправленную форму и обновлять учетные записи пользователей на основе данных предыдущей формы.

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

Как я могу сделать так, чтобы все непроверенные флажки прошли переменная null для POST, или продолжайте делать это так, как я, и удалите значения скрытых флажков, если установлен соответствующий флажок?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...