๐Ÿง‘โ€๐Ÿ’ป[Spring Boot] ํฌ์ผ“๋ชฌ๋„๊ฐ ๋งŒ๋“ค๊ธฐ - ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

J_m2nยท2024๋…„ 3์›” 7์ผ
0


๊ฒฐ๊ณผ



JQuery๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํฌ์ผ“๋ชฌ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด๋ดค๋‹ค.
1. Select ์š”์†Œ์—์„œ ๊ฒ€์ƒ‰ ๊ธฐ์ค€์„ ์„ ํƒํ•œ๋‹ค.
2. ๊ฒ€์ƒ‰ํ•˜๋ฉด ๋!


๊ฒ€์ƒ‰ ์ „์ฒด ์ฝ”๋“œ

$(document).ready(function(){
        $("#none").hide();

        $("#search").keyup(function(){
            $(".card").show();
            var keyword = $(this).val().toLowerCase();//๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์—†์ด ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•จ
            
            $(".card").hide().filter(function(){
                var std = "." + $("#category").val();
                var key = $(this).find(std).text().toLowerCase();
                return key.includes(keyword);
            }).show();
            //var target = $(".card:contains('"+keyword+"')");
            if ($(".card:visible").length === 0) {
                $("#none").show();
            } else {
                $("#none").hide();
            }
        });
    });

<div id="none" class="col-12 none">๊ฒ€์ƒ‰ํ•˜๋ ค๋Š” ํฌ์ผ“๋ชฌ์ด ์—†์Šต๋‹ˆ๋‹ค.</div>

์ด ์š”์†Œ๋ฅผ ์ฒ˜์Œ์— ํ™”๋ฉด load ๋์„ ๋•Œ๋Š” ์•ˆ๋œจ๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด
document.ready()๋˜์ž๋งˆ์ž

$("#none").hide();

๋กœ ์ˆจ๊ฒจ๋†“๋Š”๋‹ค.


<select id="category" style="height:5vh;font-size:1.3rem;margin-right:1vw">
            <option value="no">๋„๊ฐ๋ฒˆํ˜ธ</option>
            <option value="name">์ด๋ฆ„</option>
        </select><input type="text" id="search" placeholder="๊ฒ€์ƒ‰" style="height: 5vh;font-size:1.3rem">

id๊ฐ€ search์ธ text์—์„œ keyup ์ด๋ฒคํŠธ๋ฅผ ๊ฑธ์–ด ํ…์ŠคํŠธ๊ฐ€ ์ž…๋ ฅ๋  ๋•Œ๋งˆ๋‹ค ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ํ•œ๋‹ค.

$("#search").keyup(function(){
	
});

<div class="card" ...></div> //์ฝ”๋“œ ์ƒ๋žต
var keyword = $(this).val().toLowerCase();//๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์—†์ด ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•จ
            
            $(".card").hide().filter(function(){
                var std = "." + $("#category").val();
                var key = $(this).find(std).text().toLowerCase();
                return key.includes(keyword);
            }).show();

์œ„ ์ฝ”๋“œ๋Š” keyup ์ด๋ฒคํŠธ ํ•จ์ˆ˜ ์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ์ฝ”๋“œ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์„œ this๋Š” #search์ด๋‹ค.
1. #search์˜ value๋ฅผ ๊ฐ€์ ธ์™€์„œ keyword ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.
2. select์—์„œ ๊ฒ€์ƒ‰ ๊ธฐ์ค€์„ ์„ ํƒํ•ด์„œ ์„ ํƒํ•œ ๊ฒ€์ƒ‰ ๊ธฐ์ค€์˜ value๋ฅผ ๊ฐ€์ ธ์™€์„œ std ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.

โ—๏ธโ—๏ธ์—ฌ๊ธฐ์„œ ์™œ id๋กœ ์•ˆ์ฐพ๊ณ  ๊ตณ์ด .์„ ๋ถ™์—ฌ์„œ ํด๋ž˜์Šค๋กœ ์ฐพ์œผ๋ ค ํ•˜๋Š๋ƒ?!
JSTL๋กœ <c:forEach>๋ฅผ ์‚ฌ์šฉํ•ด์„œ ArrayList๋กœ ๋„˜์–ด์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ๋ฉด์„œ div๋ฅผ ๊ณ„์† ์ถ”๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์š”์†Œ์˜ ๊ณ ์œ ํ•œ id๋ฅผ ์ค„ ์ˆ˜ ์—†์–ด์„œ ํด๋ž˜์Šค๋กœ ์ฐพ์•„์•ผ ํ•จ


filterํ•จ์ˆ˜๋ฅผ ์ผ๊ธฐ ๋•Œ๋ฌธ์— return์„ ์ค˜์„œ ๋ณ€์ˆ˜ key์— keyword๊ฐ€ ์žˆ์œผ๋ฉด, ์ฆ‰ ์š”์†Œ์— ๊ฒ€์ƒ‰ํ•˜๋ ค๋Š” ํ…์ŠคํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด show()ํ•จ์ˆ˜ ์‹คํ–‰, ์—†์œผ๋ฉด hide()๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

๊ทผ๋ฐ ์ด๋ ‡๊ฒŒ ๋๋‚ด๋ฒ„๋ฆฌ๋ฉด ๊ฒ€์ƒ‰์„ ๋งˆ์น˜๊ณ  ๋‹ค์‹œ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ์‹ถ์„ ๋•Œ hide๋œ ์• ๋“ค์ด ๋‹ค์‹œ ๋œจ์ง€๋ฅผ ์•Š์Œ!!

๊ทธ๋ž˜์„œ keyup ์ด๋ฒคํŠธ ํ•จ์ˆ˜ ์•ˆ์ชฝ ์ œ์ผ ์œ„์—

$(".card").show();

์ด ๋…€์„์„ ์ถ”๊ฐ€ํ•ด์ค˜์„œ ์ผ๋‹จ keyup ์ด๋ฒคํŠธ๊ฐ€ ์ผ์–ด๋‚  ๋•Œ๋งˆ๋‹ค ์ˆจ๊ฒจ๋†จ๋˜ ๋ชจ๋“  .card๋“ค์„ showํ•œ ๋‹ค์Œ ๋‹ค์‹œ ๊ฒ€์ƒ‰์— ๋งž๊ฒŒ hide๋ฅผ ํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ž„!!

profile
์ฝ”๋”ฉ ์ดˆ์งœ์ž…๋‹ˆ๋‹ค

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