Как вставить в SQL флажок в форме с Handlebars? - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть форма, которая редактирует продукт: edit_product

И когда она редактируется, она загружает ее, обновляя эту таблицу SQL (называемую продуктом).

enter image description here

Проблема возникает, когда я хочу разместить флажок .В форме все отправлено правильно, кроме флажка, который всегда получает значение 0.

Вот снимок экрана console.log, флажок равен is_available *Значение 1020 * и это логическое значение .

enter image description here

В форме флажок:

<div class="form-group">
<input type="checkbox" name="is_available" {{#if product.is_available}}checked{{/if}}>
</div>

И функция, которая получает форму методом POST:

router.post('/edit/:id', isLoggedIn, async(req,res) => {
    const { id } = req.params;
    const { title, url, image_path, description, price, coupon, discount, is_available } = req.body;
    const newProduct = {
        title,
        url, 
        image_path,
        description,
        price,
        coupon,
        discount,
        is_available
    };
    await pool.query('UPDATE product SET ? WHERE id = ?', [newProduct, id]);
    req.flash('success', 'Product modified successfully');
    res.redirect('/products/');
});

Я хочу знать, почему значение флажка не ОБНОВЛЕНИЕ в БАЗЕ ДАННЫХ , когда флажок включен / выключен.

1 Ответ

1 голос
/ 16 апреля 2019

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

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

...