проблема отображения данных в раскрывающемся списке с помощью ejs - PullRequest
0 голосов
/ 03 сентября 2018

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

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

< div class="input-field col s6">
  < select name="gender">
    < option value="--Select--" disabled> Choose your gender
    < /option>< option value="0"> Female< /option>
    < option value="1"> Male< /option>
  < /select>
  < label> Select Gender
  < /label>
< /div>

Мой код профиля:

router.get('/profile/:member_id', ensureAuthenticated, (req, res) => {

  Profile.findOne({
      member_id: req.params.member_id
    })
    .then(profile => {

      if (req.params.member_id != req.user.member_id) {
        req.flash('error_msg', 'Your are not authorized to update this profile.');
        res.redirect('/user/userdashboard/1');
      } else {
        res.render('user/profile', {
          profile: profile
        });
      }
    })
    .catch(error => {
      console.log('could not find user profile');
    });

});

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

1 Ответ

0 голосов
/ 03 сентября 2018

В раскрывающемся HTML-коде вы можете переключать соответствующий атрибут <option> тега selected:

<select name="gender">
  <option value="--Select--" disabled>Choose your gender</option>
  <option selected=<%= profile.gender === "Female" %> value="0">Female</option>
  <option selected=<%= profile.gender === "Male" %> value="1">Male</option>
</select>
...