๊ด€๋ฆฌ ๋ฉ”๋‰ด

bom's happy life

[AJAX] ajax - controller ํ†ต์‹  / update ๊ธฐ๋Šฅ ๋ณธ๋ฌธ

Deveolpment Study๐Ÿ—‚๏ธ/AJAX

[AJAX] ajax - controller ํ†ต์‹  / update ๊ธฐ๋Šฅ

bompeach 2023. 10. 26. 16:51

< '์ ‘์ˆ˜' ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ '์Šน์ธ'์ด ๋˜๋„๋ก update ๊ตฌํ˜„ํ•˜๊ธฐ > 

์‹ค์ˆ˜ํ•œ ๋ถ€๋ถ„์ด๋ž‘ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋ถ€๋ถ„ ๊ธฐ๋ก.

 

์ผ๋‹จ update๋Š” return ๊ฐ’์ด ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ํ•„์š”๊ฐ€ ์—†๋‹ค. (return ๊ฐ’์ด ์—†์„ ๋•Œ๋Š” void๋กœ ๋ฐ”๊ฟ”์ฃผ)

 

๊ทธ๋Ÿฐ๋ฐ return๊ฐ’์„ ๋งŒ๋“ค์–ด์„œ ์„ฑํŒจ๋ฅผ alertํ•˜๋Š” ์šฉ๋„๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.(๋‚˜๋Š” ์ด๊ฑธ๋กœ ใ„ฑใ„ฑ)

 

 

์˜ˆ์ œ →

jsp
<td><a class="receipt" href="javascript:void(0);" onclick="accept_btn(${data.seq}, this);">์ ‘์ˆ˜</a></td>

 

ajax
function accept_btn(seq, obj) {
	console.log("seq = " + seq);
	
	if (!confirm("์Šน์ธํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?")) {
		return;
	}
	var data  = {"seq" : seq};
	$.ajax({
		type		: "POST",
		url 		: "${pageContext.request.contextPath }/admin/emp/accept",
		data		:  data,
		/* contentType : "application/json", */
		success 	: function(data) {
			if(data == 'done'){
				toastAlert("success","์Šน์ธ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!");
				$(obj).parent().html('์Šน์ธ');
			}else{
				toastAlert("error","์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.");
			}
		},
		error		: function(error) {
			console.log(error);
		}
	});
}

 

๋‚ด๊ฐ€ ์›ํ•˜๋Š”๊ฑด ajaxํ†ต์‹ ์ด ์„ฑ๊ณตํ•˜๋ฉด alert๊ฐ€ ๋œจ๋ฉด์„œ '์ ‘์ˆ˜' ๋ฒ„ํŠผ์ด '์Šน์ธ'์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋„๋ก ํ•˜๊ณ  ์‹ถ์–ด์„œ location.reload(); ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์—ˆ๋‹ค. ๊ทธ๋žฌ๋”๋‹ˆ ๋ฌธ์ œ๊ฐ€ ๋ญ๋ƒ๋ฉด, alert๊ฐ€ ๋ช…ํ™•ํžˆ ๋œจ๊ธฐ๋„ ์ „์— ์ƒˆ๋กœ๊ณ ์นจ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์–ด๋ฒ„๋ ค์„œ ์•Œ๋ฆผ์ฐฝ์„ ๋ณผ ์ˆ˜๊ฐ€ ์—†์—ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ

onclick="accept_btn(${data.seq}, this); ์—ฌ๊ธฐ์— this๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ ,

function accept_btn(seq, obj) ์—ฌ๊ธฐ์„œ ๋ฐ›์•„์ฃผ๊ณ ,

 

$(obj).parent().html('์Šน์ธ') 

๐Ÿ’กํ•˜๋‚˜ํ•˜๋‚˜ ๋œฏ์–ด์„œ ์„ค๋ช…
1๏ธโƒฃ $(obj) : obj๋Š” ์„ ํƒํ•˜๋ ค๋Š” HTML ์š”์†Œ.
2๏ธโƒฃ.parent() : ์„ ํƒํ•œ HTML ์š”์†Œ์˜ ๋ถ€๋ชจ ์š”์†Œ๋ฅผ ์„ ํƒํ•˜๋Š” jQuery ๋ฉ”์„œ๋“œ, ์„ ํƒํ•œ ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ƒ์œ„ ๋ถ€๋ชจ ์š”์†Œ๋ฅผ ์ฐพ๋Š”๋‹ค.
3๏ธโƒฃ.html('์Šน์ธ') : ์„ ํƒํ•œ ๋ถ€๋ชจ ์š”์†Œ์˜ HTML ๋‚ด์šฉ์„ '์Šน์ธ'์œผ๋กœ  ๋ฐ”๊พธ๋Š” jQuery ๋ฉ”์„œ๋“œ.( ' '๋นˆ ๋ฌธ์ž์—ด๋กœ ๋‘˜ ์ˆ˜๋„ ์žˆ๋‹ค. )

์ฆ‰, ์ด ์ฝ”๋“œ์˜ ๋ชฉ์ ์€ ์„ ํƒํ•œ HTML ์š”์†Œ์˜ ๋ถ€๋ชจ ์š”์†Œ์˜ ๋‚ด์šฉ์„ ๋ชจ๋‘ '์Šน์ธ' ์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ!

 

 

Controller

ajaxํ†ต์‹ ์— ํ•„์š”ํ•œ @ResponseBody

@ResponseBody 
@RequestMapping(value="/accept", method = RequestMethod.POST)
public String adminEmpAccept(AccntVo searchVo) {
	if(adminAccntService.adminEmpAccept(searchVo) == 1) {
		return "done";
	}else {
		return "error";
	}
}

 

Service
Integer adminEmpAccept(AccntVo accnt);

 

ServiceImpl
@Override
public Integer adminEmpAccept(AccntVo accnt) {
	return adminAccntRepository.adminEmpAccept(accnt);
}

 

Repository or DAO
Integer adminEmpAccept(AccntVo accntVo);

 

xml(mapper)
<update id="adminEmpAccept"  parameterType="accnt" >
UPDATE ACCNT
SET 
	APPROVE_STS = 'Y'
WHERE 1=1
    AND APPROVE_STS = 'N'
    AND SEQ	= #{seq}
</update>

 

'Deveolpment Study๐Ÿ—‚๏ธ > AJAX' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[AJAX] Ajax๋ž€?  (0) 2023.07.25
[AJAX] ๋น„๋™๊ธฐ ํ†ต์‹   (0) 2023.05.25
[AJAX] ๋Œ“๊ธ€๋‹ฌ๊ธฐ  (0) 2023.05.19