Unlike submitting a ENTIRE FORM, Ajax web apps is commonly used to update ONLY A PART OF HTML. This section is continued from the previous section.
This example only update one of multiple rows in a HTML:
(Above image) Copied fields (on the right side) will be registered in Data base and the row in a screen. (Below image)
Summarized as five steps:
- Take the form values from the form and call the Javascript (with Ajax) function
- Send request to the Controller with the object
- The controller receives the request and register the database
- The controller response the Ajax with the object
- J-Query function update the HTML as response object
<input type="button" id="idSubmitHdr" value="Update RMA" style="height:25px; width:150px; color: #F6FDA4; background-color: #0400FF; font-face: 'Comic Sans MS';"/>
$(function() { $('#idSubmitHdr').on('click',function() { var idId = $("#idId").val(); var idRmaNum = $("#idRmaNum").val(); var id_tpCd = $("div.id_tpCd select").val(); var id_RsnCd = $("div.id_RsnCd select").val(); var idSellTo = $("#idSellTo").val(); var id_HdrSts = $("div.id_HdrSts select").val(); var rmaHdrModel = { "id" : idId, "rmaNum" : idRmaNum, "rtrnTpCd" : id_tpCd, "rtrnRsnCd" : id_RsnCd, "sellToCustCd" : idSellTo, "rmaHdrStsCd" :id_HdrSts } $.ajax({ type : 'POST', url : 'submitHdrByJsonMain01', contentType : 'application/json; charset=utf-8', dataType : 'json', data: JSON.stringify(rmaHdrModel), success : function(data) { modifyRowData(data); }, error : function(e) { alert("error:" +response+ ":" +e); } }); }); });
Step 1. The above Javascript function takes six values from the form, and created as one object (Line 2 and 12 to 17).
Step 2. Send request to the Controller with the object
NOTE: use “JSON.stringify” function (line 24)
@RequestMapping(value = "/submitHdrByJsonMain01", method = RequestMethod.POST) public @ResponseBody RmaHdrModel submitHdrByJson(@RequestBody RmaHdrModel rma, HttpServletRequest req) { RMA_HDR obj = RmaBL.saveHdr(rma, req); return RmaBL.getRmaHdrModel(obj.getRmaNum()); }
Step 3 and 4. The controller receives the request and register the data base and returns a JSON object to Javascript.
function modifyRowData(newData) { var id = newData.id; var rmaNum = newData.rmaNum; var stsCd = newData.rmaHdrStsCd; var stsNm = newData.rmaHdrStsNm; var tpCd = newData.rtrnTpCd; var tpNm = newData.rtrnTpNm; var rsnCd = newData.rtrnRsnCd; var rsnNm = newData.rtrnRsnNm; var custCd = newData.sellToCustCd; $('#IdHdrDtl tr').each(function() { var currRmaNum = $(this).find('td').eq(3).text(); // rmaNum var currStsCd = $(this).find('td').eq(4).text(); // StsCd var currStsNm = $(this).find('td').eq(5).text(); var currTpCd = $(this).find('td').eq(6).text(); // TpCd var currTpNm = $(this).find('td').eq(7).text(); var currRsnCd = $(this).find('td').eq(8).text(); // RsnCd var currRsnNm = $(this).find('td').eq(9).text(); var currCustCd = $(this).find('td').eq(10).text(); // CustCd var idRmaNum = $(this).find('td').eq(3).attr('id'); var idStsCd = $(this).find('td').eq(4).attr('id'); var idStsNm = $(this).find('td').eq(5).attr('id'); var idTpCd = $(this).find('td').eq(6).attr('id'); var idTpNm = $(this).find('td').eq(7).attr('id'); var idRsnCd = $(this).find('td').eq(8).attr('id'); var idRsnNm = $(this).find('td').eq(9).attr('id'); var idCustCd = $(this).find('td').eq(10).attr('id'); if(rmaNum == currRmaNum) { $("#"+ idStsCd).html(stsCd); $("#"+ idStsNm).html(stsNm); $("#"+ idTpCd).html(tpCd); $("#"+ idTpNm).html(tpNm); $("#"+ idRsnCd).html(rsnCd); $("#"+ idRsnNm).html(rsnNm); $("#"+ idCustCd).html(custCd); return false; } }); }
Step 5. Another Javascript function “modifyRowData” (Above) called and J-Query function update a part of HTML (specified row in this example).