Значения HTML-формы из серверной части

#node.js #forms

Вопрос:

 <form action="/users/student/update" method="POST">
    <div class="personal">
        <h3 style="padding: 0 22px;">PERSONAL DETAILS</h3>
        <hr style="width: 25%; margin-left: 0; border: 1px solid black;">
        <label for="name" class="d">Name :</label>
        <input id="name" type="text" value= profileInformation.Name name="Name">
        <hr>
        <label for="email" class="e">Email :</label>
        <input id="email" type="email" value="profileInformation.email" name="email">
        <hr>
    </div>
    <hr style="border: 2px solid black;">
    
    <input class="btn" type="submit" value="Submit">
</form>
 

В этом коде profileInformation это объект данных, а имя и адрес электронной почты в нем являются переменными. Я хочу использовать их в качестве значений по умолчанию. Прямо сейчас он печатается как ProfileInformation.name , а не как значение. Пожалуйста, помогите.

Комментарии:

1. попробуйте использовать механизм шаблонов, например pugjs.org/api/getting-started.html

Ответ №1:

Вы не можете сделать это в HTML. Для этого вам нужен javascript.

 document.addEventListener("DOMContentLoaded", function () {
    document.getElementById("name").value = profileInformation.name;
    document.getElementById("email").value = profileInformation.email;
});
 
 const profileInformation = {
  name: "some name",
  email: "test@gmail.com"
};

document.addEventListener("DOMContentLoaded", function () {
    document.getElementById("name").value = profileInformation.name;
    document.getElementById("email").value = profileInformation.email;
}); 
 <form action="/users/student/update" method="POST">
    <div class="personal">
        <h3 style="padding: 0 22px;">PERSONAL DETAILS</h3>
        <hr style="width: 25%; margin-left: 0; border: 1px solid black;">
        <label for="name" class="d">Name :</label>
        <input id="name" type="text" name="Name">
        <hr>
        <label for="email" class="e">Email :</label>
        <input id="email" type="email" name="email">
        <hr>
    </div>
    <hr style="border: 2px solid black;">
    
    <input class="btn" type="submit" value="Submit">
</form> 

Комментарии:

1. Итак, у меня есть это в теге сценария. Теперь не могли бы вы, пожалуйста, сказать мне, как внести это в форму?

2. Этот код document.getElementById("name").value будет искать DOM с идентификатором name и обновлять его значение , то же самое для адреса электронной почты. Вам просто нужны эти коды, и ваше profileInformation , все будет работать.

3. @shankyyyyyyy Я обновил ответ фрагментом кода.

4. Я получаю только «какое-то имя», а не имя объекта. res.render(‘users/studentEditProfile’,{profileInformation: profileInformation}) — это мой внутренний код

5. Я думаю, вам нужно посмотреть больше учебных пособий по javascript и HTML, похоже, вам здесь не хватает базовых знаний javascript…