Динамическая настройка данных в JSP с помощью Ajax

#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