在AJAX调用之后更新JSP页面内的表的values属性

时间:2016-12-20 14:06:04

标签: javascript jquery ajax jsp

我在显示一个表的内容时遇到问题,一旦在同一页面中点击另一个表的某一行进行AJAX请求,该表的内容将可用。 以下是我的JSP页面中的表的代码。

<table id="previousList" class="table">
  <thead>
    <tr>
      <th colspan="6">Previous Billing Records</th>
    </tr>
    <tr>
      <th>Bill Number</th>
      <th>Amount</th>
    </tr>
  </thead>
  <tbody>
    <c:forEach var="lastBill" items="${previousBills}" varStatus="status">  
      <tr>
        <td>${lastBill.billingId}</td>
        <td>${lastBill.billAmount}</td>
      </tr>
    </c:forEach>
  </tbody>
</table>
var jsonData;
var patientTable = $('#patientsList').DataTable();
var table = document.getElementById("selectedPatient");

$('#patientsList tbody').on('click', 'tr', function() {
  var data = patientTable.row(this).data();
  console.log("Data " + data);

  $.ajax({
    type: "POST",
    url: "/LoginMavenSpringMVC/billing/lastBill",
    data: "patientId=" + data[0],
    success: function(response) {
      console.log("Showing the LastBill Details: " + response);
      jsonData = response;
    },
    error: function(e) {
      alert('Error: ' + e);
    }
  });
});

我的控制器代码如下。

@RequestMapping(value="/lastBill")
public @ResponseBody String lastBill(ModelMap model, String patientId) 
{
  System.out.println("ID: " + patientId);
  Gson gson = new Gson();
  Bill b = new Bill();
  b.setBillAmount(1000);
  b.setBillingId("12345SDf");
  Collection<Bill> bills = new ArrayList<Bill>();
  bills.add(b);
  model.addAttribute("previousBills",bills);
  String jsonBills = gson.toJson(bills);
  model.addAttribute("jsonBills", jsonBills);
  return jsonBills;
}

我能够获取JSON数据,但无法将值绑定到表中。任何建议/答案都会很明显。提前谢谢。

1 个答案:

答案 0 :(得分:2)

试试这个应该有效。

var jsonData;
   
$('#patientsList tbody').on('click', 'tr', function() {
  var data = patientTable.row(this).data();
  console.log("Data " + data);

  $.ajax({
    type: "POST",
    url: "/LoginMavenSpringMVC/billing/lastBill",
    data: "patientId=" + data[0],
    success: function(response) {
      console.log("Showing the LastBill Details: " + response);
      jsonData = JSON.parse(response);
	   $.each(jsonData, function(i, bill) {
			var newRowContent = "<tr><td>"+bill.billingId+"</td><td>"+bill.billAmount+"</td></tr>";
			 $("#previousList tbody").append(newRowContent);
         });
	 
    },
    error: function(e) {
      alert('Error: ' + e);
    }
  });
});