#javascript #java
#javascript #java
Вопрос:
Я пытаюсь поместить данные на страницу JSP из объекта JSON, используя js or jquery
Выборка данных из базы данных с использованием ajax, после получения успешного ответа набор данных в полях
function loadCustomerDetails(url) {
var result = "";
$.ajax({
url : url,
global : false,
type : "POST",
dataType : "json",
async : false,
success : function(data) { // Here data is json object
initCustomerDetails(data);
});
return resu<
}
function initCustomerDetails(data) {
$("#firstName").text(data.firstName);
$("#lastName").text(data.lastName);
$("#dob").text(data.dob);
....
Other fields set here (I have almost 50 fields that I need to set here)
}
Приведенный выше код работает нормально, но проблема заключается в сохранении кода, потому что добавляется любое поле, тогда я должен изменить код здесь.
Итак, есть ли какой-либо другой лучший способ установки данных?
Я использую приведенный ниже JSP
<form id="customer" name="customer" method="POST">
<tr id="detailstrid5" align="left">
<td>
<input type="text" id="firstName" name= "firstName"></input>
<input type="text" id="lastName" name= "lastName"></input>
<input type="text" id="dob" name= "dob"></input>
...
...
Other fields
</td>
</tr>
</form>
Примечание: я использую JSP Java Spring MVC JS jQuery AJAX
Комментарии:
1. Вы также можете создавать поля формы после получения данных с сервера, повторяя эти данные. Для каждого поля данных вы можете создать поле ввода.
2. Не могли бы вы, пожалуйста, поделиться одним примером
Ответ №1:
Вы можете попробовать что-то ниже:
function loadCustomerDetails(url) {
var result = "";
$.ajax({
url : url,
global : false,
type : "POST",
dataType : "json",
async : false,
success : function(data) { // Here data is json object
populateFormFields(data);
});
return resu<
}
function populateFormFields(data){
for(var prp in data){
var inputElement =document.createElement('input');
inputElement.setAttribute('type','text');
inputElement.setAttribute('id',prp);
inputElement.setAttribute('name',prp);
document.getElementById('yourTdId').appendChild(inputElement);
}
initCustomerDetails(data);
}
Комментарии:
1. Это будет создавать новый элемент каждый раз.. но у меня уже есть этот элемент на странице jao…
2. Перед циклом for вы можете удалить дочерние элементы элемента td.
3. Любые другие варианты
4. Извините, я показал вам способ мышления. Для получения подробной информации попробуйте Google