//Controller
//ResponsBody 값 반환할 때 필요
//requestBody == 여러값을 다 받아옴(toString형식)
//requestParam == 그 값들을 1:1 매칭시켜줌
//JS
/*
//vo값을 보내는 경우
JSON.stringfy
contentType: 'application/json'
ajax에 두 옵션이 있어야 한다
받을 때는
Requestbody <Type> 변수명
//requestParam으로 보내는 경우
data: {'cartno':cartno}
//반환값 종류
dataType: 'json' or 'text' 등
//문자열 값을 전송하는 경우
contentType: 'application/json'
*/
@ResponseBody
@PostMapping("order/saveOption")
public int saveOption(@RequestBody CartVO vo) {
System.out.println(vo.getColor());
return 1;
}
/* 옵션변경확인버튼 */
$('#saveOption').click(function(){
if($('#optionTable td > div.size > input[name=chkSize]').is(':checked')){
let color = $('#optionTable td > div.color > input[name=chkColor]:checked').val();
let size = $('#optionTable td > div.size > input[name=chkSize]:checked').val();
let cartNo = $('#modalCartNo').val();
let vo = {
'cartNo':cartNo,
'color' :color,
'size' :size
}
$.ajax({
url:'/Beauty/order/saveOption',
type:'POST',
data: JSON.stringify(vo),
dataType:'json',
contentType: 'application/json',
success:function(data){
//todo
},
error: function() {
alert('error 장바구니');
}
});
}else{
alert('옵션을 선택해주세요');
return;
}
});
//배열의 경우
@ResponseBody
@PostMapping("product/order")
public int order(Model model, @RequestBody List<OrderItemVO> orderList) {
model.addAttribute("orderList", orderList);
return 1;
}