Как отобразить редактируемое значение для номера и выбрать поля в экспрессе EJS - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь отобразить значения в формате HTML для числа и выбрать поля в экспресс-Ejs

Мне удалось исправить поле textarea с примером на StackOverflow. но ничего для числового поля и выбора полей. также текстовое поле в порядке

 <form id="c_form-h" class="" method="post" method="post" action="/addbooks" style="padding: 5px;">  
                        <div class="form-group row">
                             <label for="addbookname" class="col-6 col-form-label">Book Name</label>
                         <div class="col-12">
                            <input type="text" value="<%=result.book_name %>" class="form-control" name="bookname" placeholder="Add Book Name"> 
                        </div>
                        </div>                      
                        <div class="form-group row">
                            <label for="addsummary" class="col-6 col-form-label">Summary</label>
                          <div class="col-12">  
                          <textarea class="form-control" name="summaries" placeholder="Write Some Description" rows="3"><%=result.summary %>    
                          </textarea>
                        </div>
                    </div>              
                        <div class="form-group row">
                            <label for="addcategory" class="col-9 col-form-label">Select Category</label>
                          <div class="col-12">
                            <input type="number" value="<%=result.isbn %>" class="form-control" name="isbn" placeholder="ISBN"> 
                        </div>
                        </div>    
                         <div class="form-group row">
                             <label for="addcategory" class="col-9 col-form-label">Select Category</label>
                           <div class="col-12">
                            <select class="form-control" value="<%=result.category %>" name="categories">
                              <option></option>
                              <option>Fruits</option>
                              <option>Intercontinental Foods</option>
                              <option>3</option>
                              <option>4</option>
                            </select>
                           </div>
                          </div>
                         <button type="submit" class="btn btn-primary">Submit</button>
                      </form>

1 Ответ

0 голосов
/ 23 января 2019

Прежде всего, если ваши опции select фиксированы, вы должны создать массив их значений и получить доступ к этим значениям с помощью цикла forEach в ejs.
В вашем случае, если <%=result.category %> является одним из пяти вариантов, вы можете использовать это:

<select class="form-control" name="categories">
    <option value="" <%= result.category === '' ? 'selected': '' %> ></option>
    <option value="Fruits" <%= result.category === 'Fruits' ? 'selected': '' %> >Fruits</option>
    <option value="Intercontinental Foods" <%= result.category === 'Intercontinental Foods' ? 'selected': '' %> >Intercontinental Foods</option>
    <option value="3" <%= result.category === '3' ? 'selected': '' %> >3</option>
    <option value="4" <%= result.category === '4' ? 'selected': '' %> >4</option>
</select>



Если ваши параметры фиксированы, как я упоминал ранее, вы можете включить их в массив optionsArray (например, optionsArray = ['', 'Fruits', 'Intercontinental Foods', '3', '4']) и отобразить его в файл ejs. Затем вы будете использовать его следующим образом:

    <select class="form-control" name="categories">
        <% optionsArray.forEach(op => { %>
            <option value="<%= op %>" <%= result.category === op ? 'selected': '' %>  ><%= op %></option>
        <% }); %>
    </select>
...