์‡ผํ•‘๋ชฐ ํ”„๋กœ์ ํŠธ(9) - ์ƒํ’ˆ ๊ด€๋ฆฌ (์ˆ˜์ •)

2023. 4. 3. 11:07ใ†Spring

์ƒํ’ˆ ๊ธฐ๋ณธ(์ƒ์„ธ) ์ •๋ณด ํ™”๋ฉด์—์„œ

์ˆ˜์ • ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์ƒํ’ˆ ์ •๋ณด ์ˆ˜์ • ๊ธฐ๋Šฅ.(ajax ์‚ฌ์šฉ x)

 

์ƒํ’ˆ ์ˆ˜์ • ์ฟผ๋ฆฌ

	<!-- ์ƒํ’ˆ ์ˆ˜์ • -->
	<update id="updateItem">
		UPDATE SHOP_ITEM
		SET
			CATE_CODE = #{cateCode}
			, ITEM_NAME = #{itemName}
			, ITEM_PRICE = #{itemPrice}
			, ITEM_INTRO = #{itemIntro}
			, ITEM_STATUS = #{itemStatus}
			, ITEM_STOCK = #{itemStock}
		WHERE ITEM_CODE = #{itemCode}
	
	</update>

AdminService

	//์ƒํ’ˆ ์ˆ˜์ •(๊ด€๋ฆฌ์žํŽ˜์ด์ง€)
	void updateItem(ItemVO itemVO);

AdminServiceImpl

	//์ƒํ’ˆ ์ˆ˜์ •(
	@Override
	public void updateItem(ItemVO itemVO) {
		sqlSession.update("adminMapper.updateItem", itemVO);
	}

item_manage.js์—์„œ ์ƒํ’ˆ ์ •๋ณด ๋‚˜์˜ค๋Š” ํ…Œ์ด๋ธ” form ํƒœ๊ทธ์— ๊ฐ์‹ธ์•ผ ํ•จ. form ํƒœ๊ทธ ์†์„ฑ ์ž‘์„ฑ

์ˆ˜์ • ๋ฒ„ํŠผ submit์œผ๋กœ ์ˆ˜์ •.

์ˆ˜์ • ๋ฒ„ํŠผ ๋ˆ„๋ฅผ ๋•Œ ํ•ด๋‹น ์ƒํ’ˆ ์ •๋ณด ์ˆ˜์ •๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— input ํƒœ๊ทธ hidden ์†์„ฑ์œผ๋กœ itemCode ๋„˜๊ฒจ์คŒ.

//์ƒํ’ˆ ์ •๋ณด ๋‚˜์˜ฌ ํ…Œ์ด๋ธ”
let str = '';


str += `   <form action="/admin/updateItem" method="post">  `;  
str += `      <input type="hidden" name="itemCode" value="${result['item'].itemCode}">  `;                                                          
str += `    <div class="row">                                                           `;
str += `       <div class="col-9 sub-title">                                            `;
str += `          ์ƒํ’ˆ ๊ธฐ๋ณธ ์ •๋ณด                                                        `;
str += `       </div>                                                                   `;
str += `       <div class="col-3 sub-title d-grid">                                     `;
str += `          <button type="submit" class="btn btn-primary">                        `;
str += `              ์ˆ˜ ์ •                                                             `;
str += `          </button>                                                             `;
str += `       </div>                                                                   `;

 

๊ฐ input ํƒœ๊ทธ name ์†์„ฑ ๋งž์ถฐ์ฃผ๊ธฐ

str += `    </div>                                                                      `;
str += `    <div class="row">                                                           `;
str += `       <div class="col-1"></div>                                                `;
str += `       <div class="col-11">                                                     `;
str += `          <div class="row update-content">                                      `;
str += `             <label class="col-3 col-form-label text-end">์นดํ…Œ๊ณ ๋ฆฌ</label>      `;
str += `             <div class="col-9">                                                `;
str += `                <select id="" name="cateCode" class="form-select">              `;
                        for(const e of result['cateList']){
                        const selected = result['item'].cateCode == e.cateCode ? 'selected' : ''; //๊ฐ™์œผ๋ฉด selected
str += `                   <option value="${e.cateCode}" ${selected}>${e.cateName}</option>  `;
                            //์นดํ…Œ์ฝ”๋“œ ๊ฐ™์œผ๋ฉด selected ๋ณ€์ˆ˜์— selected ๋‹ด์•„์˜ด. selected ์†์„ฑ ๋ฐ˜์˜ `;
                            }

str += `                </select>                                                       `;
str += `             </div>                                                             `;
str += `             <label class="col-3 col-form-label text-end">์ƒํ’ˆ๋ช…</label>        `;
str += `             <div class="col-9">                                                `;
str += `                <input type="text" class="form-control" name="itemName" value="${result['item'].itemName}">  `;
str += `             </div>                                                             `;
str += `             <label class="col-3 col-form-label text-end">ํŒ๋งค๊ฐ€๊ฒฉ</label>      `;
str += `             <div class="col-9">                                                `;
str += `                <input type="text" class="form-control" name="itemPrice" value="${result['item'].itemPrice}"> `;
str += `             </div>                                                             `;
str += `             <label class="col-3 col-form-label text-end">์ƒํ’ˆ์†Œ๊ฐœ</label>      `;
str += `             <div class="col-9">                                                `;
str += `                <textarea class="form-control" rows="3" name="itemIntro">${result['item'].itemIntro}</textarea> `;
str += `             </div>                                                             `;
str += `          </div>                                                                `;
str += `       </div>                                                                   `;
str += `    </div>                                                                      `;
str += `    <div class="row">                                                           `;
str += `       <div class="col-9 sub-title">                                            `;
str += `          ์ƒํ’ˆ ํŒ๋งค ์ •๋ณด                                                        `;
str += `       </div>                                                                   `;
str += `    </div>                                                                      `;
str += `    <div class="row">                                                           `;
str += `       <div class="col-1"></div>                                                `;
str += `       <div class="col-11">                                                     `;
str += `          <div class="row update-content">                                      `;
str += `             <label class="col-3 col-form-label text-end">์ƒํ’ˆ์ƒํƒœ</label>      `;
str += `             <div class="col-9">                                                `;
str += `                <select id="" name="itemStatus" class="form-select">            `;

                            if(result['item'].itemStatus == 1){
                            str += `<option value="1" selected>ํŒ๋งค์ค‘</option>            `;
                            str += `<option value="2">์ค€๋น„์ค‘</option>                     `;
                            str += `<option value="3">ํ’ˆ์ ˆ</option>                       `;
                            }else if(result['item'].itemStatus == 2){
                            str += `<option value="1">ํŒ๋งค์ค‘</option>                     `;
                            str += `<option value="2" selected>์ค€๋น„์ค‘</option>            `;
                            str += `<option value="3">ํ’ˆ์ ˆ</option>                       `;
                            }else{
                            str += `<option value="1">ํŒ๋งค์ค‘</option>                     `;
                            str += `<option value="2">์ค€๋น„์ค‘</option>                     `;
                            str += `<option value="3" selected>ํ’ˆ์ ˆ</option>              `;
                            }                 

str += `                </select>                                                       `;
str += `             </div>                                                             `;
str += `             <label class="col-3 col-form-label text-end">์žฌ ๊ณ </label>         `;
str += `             <div class="col-9">                                                `;
str += `                <input type="text" class="form-control" name="itemStock" value="${result['item'].itemStock}"> `;
str += `             </div>                                                             `;
str += `          </div>                                                                `;
str += `       </div>                                                                   `;
str += `    </div>                                                                      `;

 

AdminController ์ž‘์„ฑ

//์ƒํ’ˆ ์ˆ˜์ •
@PostMapping("/updateItem")
public String updateItem(ItemVO itemVO) {
    adminService.updateItem(itemVO);

    return "redirect:/admin/cateManage";
}