ふたりで

임시form을 생성 하여 ajax로 form 전송 하기. 본문

javascript

임시form을 생성 하여 ajax로 form 전송 하기.

graykang 2022. 9. 1. 11:41
728x90
반응형
SMALL

예를 들어 게시판에서 체크된 항목들만 서버쪽으로 전송하여 C.R.U.D를 하는경우...참고...

//주문전 품절상품 체크
function soldOutProductsCheck(orderTypeBtn,providerCode){
     	//이전에 만들어진 품절상품 체크용 임시form이 있으면 초기화
    	var tempFormDoc = document.getElementById("soldOutProductsCheckFrom");
    	if(tempFormDoc != null){
    		document.body.removeChild(tempFormDoc);
    	}
        
	 	//임시form생성
        var soldOutProductsCheckFrom = document.createElement('form');
 	 	soldOutProductsCheckFrom.name= "soldOutProductsCheckFrom";
 	 	soldOutProductsCheckFrom.id= "soldOutProductsCheckFrom";
 	 	var input = document.createElement('input');
 	 	input.type = 'hidden';
 	 	input.name = '${_csrf.parameterName}';
 	 	input.value = '${_csrf.token}';
 	 	soldOutProductsCheckFrom.appendChild(input);
        
 		$('.js_checkchilde:checked').each(function(index, item){//체크된 전체 상품정보 만들기
 		 	var input = document.createElement('input');
 		 	input.type = 'hidden';
 		 	input.name = "ordp_product";
 		 	input.value = $(this).val();//상품코드
 		 	soldOutProductsCheckFrom.appendChild(input);
 		});

	//임시폼 생성 하것을 화면에 추가.
    document.body.appendChild(soldOutProductsCheckFrom);
	
    var returnMesg = "" ;
	var params = $("form[name=soldOutProductsCheckFrom]").serialize();
	$.ajax({
	     type : "GET",
	     url : ctx + "/soldOutProductsCheck",
	     data : params,
	     async: false,
	     success : function(data,xhr) {
	    	 if(data != null){
	    		 var result = data.msg;
	    		 var type = result.split("_");
	    		 var resultMsg = "";
	    		 if(type[1] == "sucess."){
			 		var pdt_count=0;
	    			 for (var i = 0; i < data.pdtSoldOutList.length; i++) {
	    				 if(data.pdtSoldOutList[i].pdt_stock == 0){
  	    					 	//resultMsg= resultMsg+","+data.pdtSoldOutList[i].pdt_name;
  	    					 	//console.log(data.pdtSoldOutList[i].pdt_code);
  	    					 	//품절상품은 체크 해제
    					 		//$('input:checkbox[value="'+data.pdtSoldOutList[i].pdt_code+'"]').prop('checked', false).trigger('change');
  	    					 	$('.js_ca_count').each(function (index, item){
  	    					 		//console.log("$(this).data('product'):"+$(this).data('product')+",$(this).data('option'):"+$(this).data('option'));
	   	    					 	if(data.pdtSoldOutList[i].pdt_code == $(this).data('product') && data.pdtSoldOutList[i].pdto_code == $(this).data('option')){
	   	    					 		//console.log("this:"+parseInt($(this).data('count')));
	  	    		    				//console.log("data.pdtSoldOutList[i].pdts_count:"+data.pdtSoldOutList[i].pdts_count);
	   	    					 		if(parseInt($(this).val()) > parseInt(data.pdtSoldOutList[i].pdts_count)){
		  	    		    				//console.log("data.pdtSoldOutList[i].pdt_name:"+data.pdtSoldOutList[i].pdt_name);
		   	    					 		//console.log(pdt_code+","+pdt_count);
		   	    					 		resultMsg = resultMsg == "" ? (resultMsg +data.pdtSoldOutList[i].pdt_name+"(재고:"+data.pdtSoldOutList[i].pdts_count+")") : (resultMsg+"ㅁ  "+data.pdtSoldOutList[i].pdt_name+"(재고:"+data.pdtSoldOutList[i].pdts_count+")");
	   	    					 		}
	   	    					 	}
  	    					 	});
  	    					 	returnMesg= resultMsg;

	    				 }else{

	    				 }
					}

	    		 }else{
						LayerPopup.alert(type[1],function(){$('.modal_bg').remove();});
	    		 }
	    		 
	    	 }
	    	 //location.reload(true);
	     }
	    ,error : function(request, status, error) {
			if(request.status == 403){
			 	alert("세션이 만료 되었습니다.");
				location.reload(true);
			 }else{
				 result = "상품정보를 조회할 수 없습니다.\n서버응답_에러코드:"+request.status;
			 	alert("상품정보를 조회할 수 없습니다.\n서버응답_에러코드:"+request.status);
			 	//location.reload(true);
			 }
	    }
	});
	return returnMesg;
	
}

컨트롤러에서 VO로 받을경우 참고...

package com.graykang.front.model;

/**
 * @author graykang		create		2022.09.01
 *
 */
public class OrderInfoVO{

	private int[] ordp_product;//주문상품코드
    .
    .
    .

	public int[] getOrdp_product() {
		return ordp_product;
	}

	public void setOrdp_product(int[] ordp_product) {
		this.ordp_product = ordp_product;
	}
    .
    .
    .

}
728x90
반응형
LIST
Comments