๐Ÿ”ฅ์šฐ๋‹นํƒ•ํƒ• ๊ฐœ๋ฐœ๊ธฐ - checkbox

jiholeeยท2022๋…„ 5์›” 2์ผ
0

Java Spring

๋ชฉ๋ก ๋ณด๊ธฐ
4/5

๐Ÿ“Œ ๋ฏธ๋ฃจ๊ณ  ๋ฏธ๋ฃจ๋˜ ์ฒดํฌ๋ฐ•์Šค๋กœ ๋‹ค์ค‘ ์‚ญ์ œ ํ•˜๊ธฐ ๐Ÿ”…


๐Ÿ‘‡๐Ÿป์‚ญ์ œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด remove ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋œ๋‹ค.
function remove() {
    let obj = document.querySelectorAll(".check"); //์ฒดํฌ ๋ฐ•์Šค -> class๊ฐ€ check
    let idList = new Array();
    for (let i = 0; i< obj.length; i++) {
        if (obj[i].checked == true) {
            // ์ฒดํฌ ๋ฐ•์Šค th:name="${member.id}"์ด๋‹ค. ์ฒดํฌ๋œ ํ•ญ๋ชฉ์˜ id๋งŒ idList์— ๋„ฃ๊ธฐ
            idList.push(obj[i].name);
        }
   
    }

    $.ajax({
        type: 'POST',
        url: '/basic/members',
        traditional: true,
        dataType: 'text',
        data: {
            'ids': idList
        },
    }).done(function(res) {
        idList.forEach((id) => {
            let tr = document.querySelectorAll('.member');
            // console.log(tr.textContent);
            tr.forEach(elem => {
                if (elem.getAttribute('id') === id) {
                    elem.parentElement.removeChild(elem);
                }
            })
        })
    }).fail(function (error) {
        alert(JSON.stringify(error));
    })
}

์ด๋Ÿฐ ์‹์œผ๋กœ ์ƒˆ๋กœ๊ณ ์นจ ์‹œ์ผœ๋„ ๋˜์ง€๋งŒ ์ƒˆ๋กœ๊ณ ์นจ๋˜์ง€ ์•Š๊ณ  ํ™”๋ฉด์ด ์ •๋ฆฌ๋˜๋Š” ๊ฒŒ ๋” ๋‚˜์ด์Šค ํ•œ ๋ฐฉ๋ฒ•์ด๋ผ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

    $.ajax({
        type: 'POST',
        url: '/basic/members',
        traditional: true,
        dataType: 'text',
        // contentType: 'application/json; charset=utf-8',
        data: {
            'ids': idList
        },
    }).done(function(res) {
            location.reload();
        })
    .fail(function (error) {
        alert(JSON.stringify(error));
    })

DB์—๋„ ์ž˜ ์ง€์›Œ์ฃผ๊ธฐ

    @PostMapping
    public String multicheck(@RequestParam String ids, Model model) {
        List<String> IDs = new ArrayList<String>(Arrays.asList(ids.split(",")));
        for (String id : IDs) {
            memberService.deleteMember(Long.parseLong(id));
        }

        return "redirect:/basic/members";
    }

๐Ÿ“Œ ์•Œ๊ฒŒ๋œ ์ 

  • form ์•ˆ์— form ์„ ๋„ฃ์œผ๋ฉด ์•ˆ ๋œ๋‹ค
  • DOM ์‚ญ์ œ
  • button
    button์˜ type์—๋Š” 3๊ฐ€์ง€ ๊ฐ’์„ ์ง€์ •ํ•ด ์ค„ ์ˆ˜ ์žˆ๋Š”๋ฐ ๊ฐ๊ฐ submit, reset, button์ด๋‹ค. ๋งŒ์•ฝ ์•„๋ฌด๋Ÿฐ ๊ฐ’๋„ ์ง€์ •ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๊ธฐ๋ณธ๊ฐ’์€ submit์ด๋‹ค.
    type="submit" : ํผ์˜ ์ „์†ก ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•œ๋‹ค.
    "button" ์ž์‹ ์š”์†Œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฏธ์ง€/ํ…์ŠคํŠธ/๊ฐ€์ƒ ์š”์†Œ ๋“ฑ ๋‹ค์–‘ํ•œ ํ™œ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค

๋‹ค์Œ์€
์‹œ์Šคํ…œ ์žฅ์• ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ๋ณต๊ตฌํ•  ๋ฐฉ๋ฒ• ์ƒ๊ฐํ•ด ๋ณด๊ธฐ
์ปจํŠธ๋กค๋Ÿฌ multicheck์—์„œ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๊ฐ€ ์•ˆ๋˜๋Š” ์ด์œ  -> location.reload();๋ฅผ ํ•ด์ฃผ๋ฉด ํ•ด๊ฒฐ

0๊ฐœ์˜ ๋Œ“๊ธ€