๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ผ/javascript

์—‘์…€ ๋‹ค์šด๋กœ๋“œ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๋ฐ ์•ˆ์ •์„ฑ ๊ฐœ์„ 

๐Ÿ“Œ ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๋ฐ ์•ˆ์ •์„ฑ ๊ฐœ์„ 

1. ๋ฌธ์ œ ์ƒํ™ฉ

๊ธฐ์กด ๋ชฉ๋ก ์กฐํšŒ ๊ธฐ๋Šฅ์—์„œ ๊ฒ€์ƒ‰ ์กฐ๊ฑด ๊ธฐ๋ฐ˜ ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ–ˆ๋‹ค.
๋‹จ์ˆœ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ ํ–ˆ๋‹ค:

  • ์‚ฌ์šฉ์ž ๊ฒ€์ƒ‰ ์กฐ๊ฑด ์œ ์ง€
  • ํŽ˜์ด์ง• ๋ฌด์‹œ (์ „์ฒด ๋ฐ์ดํ„ฐ ๋‹ค์šด๋กœ๋“œ)
  • ์ถ”๊ฐ€ ํ•„ํ„ฐ (์ง€์—ญ, ์ •๋ ฌ, ๋ชฉ์  ๋“ฑ) ๋ฐ˜์˜
  • ์ดˆ๊ธฐ ๊ฒ€์ƒ‰ ํ‚ค(initialKey) ๋Œ€์‘

2. ๊ตฌํ˜„ ๋ฐฉ์‹

โœ”๏ธ Form ๊ธฐ๋ฐ˜ POST ์š”์ฒญ์œผ๋กœ ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ์ฒ˜๋ฆฌ

 
form.action = "/welfare/listWelExcavateExcel.do";
form.method = "post";
form.submit();
  • GET ๋ฐฉ์‹์ด ์•„๋‹Œ POST ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ
    • ํŒŒ๋ผ๋ฏธํ„ฐ ๊ธธ์ด ์ œํ•œ ํšŒํ”ผ
    • ๋ณต์žกํ•œ ๊ฒ€์ƒ‰ ์กฐ๊ฑด ์ „๋‹ฌ ๊ฐ€๋Šฅ

โœ”๏ธ ๊ฒ€์ƒ‰ ์กฐ๊ฑด ๋™์  ์„ธํŒ…

form.searchKeyword.value = keyword;
form.search_condition.value = searchCondition;
form.sido_cd_id.value = sido_cd_id;
form.sidogun_cd_id.value = sidogun_cd_id;
 
  • ํ™”๋ฉด์—์„œ ์ž…๋ ฅ๋œ ๊ฐ’์„ hidden form์— ์ฃผ์ž…
  • ์„œ๋ฒ„์—์„œ๋Š” ๋™์ผํ•œ ๋กœ์ง์œผ๋กœ ์กฐํšŒ → ์—‘์…€ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ํ™•๋ณด

โœ”๏ธ ์ „์ฒด ๋ฐ์ดํ„ฐ ์กฐํšŒ ์ฒ˜๋ฆฌ (ํŽ˜์ด์ง• ์ œ๊ฑฐ)

form.limit.value = 99999;
form.isPaging.value = "N";
 
  • ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ์‹œ ํŽ˜์ด์ง• ์ œ๊ฑฐ
  • ์„œ๋ฒ„์—์„œ ์ „์ฒด ๋ฐ์ดํ„ฐ ์กฐํšŒํ•˜๋„๋ก ์ œ์–ด

โœ”๏ธ ์ดˆ๊ธฐ ๊ฒ€์ƒ‰ ํ‚ค ์ฒ˜๋ฆฌ ๋กœ์ง

if (initialKey !== "") {
    searchCondition = "initial";
    keyword = initialKey;
}
 
  • ํŠน์ • ์กฐ๊ฑด(initialKey)์ด ์กด์žฌํ•˜๋ฉด
    • ๊ธฐ์กด ๊ฒ€์ƒ‰ ์กฐ๊ฑด์„ override
    • ์‚ฌ์šฉ์ž ์ง„์ž… ๊ฒฝ๋กœ์— ๋”ฐ๋ฅธ ๊ฒ€์ƒ‰ ๋ถ„๊ธฐ ์ฒ˜๋ฆฌ

3. ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ๋ฐ ๊ฐœ์„  ํฌ์ธํŠธ

โš ๏ธ 1. form ํ•„๋“œ ๋ˆ„๋ฝ ์‹œ JS ์—๋Ÿฌ ๋ฐœ์ƒ

form.searchKeyword.value = keyword; // ํ•„๋“œ ์—†์œผ๋ฉด ์—๋Ÿฌ
 

โœ… ๊ฐœ์„ 

form.searchKeyword?.value = keyword;
 
  • optional chaining์œผ๋กœ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ ๋ฐฉ์ง€

โš ๏ธ 2. jQuery ์˜์กด์„ฑ ๋ฌธ์ œ

 
$('#searchFrm').attr(...).submit();
  • jQuery ๋ฏธ๋กœ๋”ฉ ์‹œ ๊ธฐ๋Šฅ ๋™์ž‘ ๋ถˆ๊ฐ€

โœ… ๊ฐœ์„ 

form.action = "...";
form.method = "post";
form.submit();
  • Vanilla JS๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์˜์กด์„ฑ ์ œ๊ฑฐ

โš ๏ธ 3. ๋Œ€์šฉ๋Ÿ‰ ์กฐํšŒ ์„ฑ๋Šฅ ์ด์Šˆ ๊ฐ€๋Šฅ์„ฑ

  • limit = 99999 ๋ฐฉ์‹์€ ๋‹จ์ˆœํ•˜์ง€๋งŒ ์œ„ํ—˜

โœ… ๊ณ ๋ ค ์‚ฌํ•ญ

  • ๋ฐ์ดํ„ฐ ์ฆ๊ฐ€ ์‹œ:
    • ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ์ฆ๊ฐ€
    • ์‘๋‹ต ์ง€์—ฐ ๊ฐ€๋Šฅ์„ฑ

๐Ÿ’ก ๊ฐœ์„  ๋ฐฉํ–ฅ

  • ์ŠคํŠธ๋ฆฌ๋ฐ ๋‹ค์šด๋กœ๋“œ
  • ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ ๊ธฐ๋ฐ˜ ์—‘์…€ ์ƒ์„ฑ

โš ๏ธ 4. ๊ฒ€์ƒ‰ ์กฐ๊ฑด overwrite ์ด์Šˆ

  • initialKey ์กด์žฌ ์‹œ ๊ธฐ์กด ๊ฒ€์ƒ‰ ์กฐ๊ฑด ๋ฌด์‹œ๋จ

๐Ÿ’ก ๊ฐœ์„  ๋ฐฉํ–ฅ

  • ์‚ฌ์šฉ์ž ์˜๋„์— ๋”ฐ๋ผ:
    • ๋ณ‘ํ•ฉ OR ์šฐ์„ ์ˆœ์œ„ ์ •์ฑ… ๋ช…ํ™•ํ™” ํ•„์š”

4. ํ•ต์‹ฌ ์„ฑ๊ณผ 

  • ๊ฒ€์ƒ‰ ์กฐ๊ฑด์„ ์œ ์ง€ํ•œ ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • POST ๊ธฐ๋ฐ˜ ์š”์ฒญ์œผ๋กœ ๋ณต์žกํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ ์•ˆ์ •์  ์ฒ˜๋ฆฌ
  • ํŽ˜์ด์ง• ์ œ๊ฑฐ๋ฅผ ํ†ตํ•œ ์ „์ฒด ๋ฐ์ดํ„ฐ ๋‹ค์šด๋กœ๋“œ ์ฒ˜๋ฆฌ
  • optional chaining ์ ์šฉ์œผ๋กœ ๋Ÿฐํƒ€์ž„ ์•ˆ์ •์„ฑ ๊ฐœ์„ 
  • jQuery ์ œ๊ฑฐ๋กœ ์˜์กด์„ฑ ์ตœ์†Œํ™” ๋ฐ ์œ ์ง€๋ณด์ˆ˜์„ฑ ํ–ฅ์ƒ
  • ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์‹œ ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ ์„ฑ๋Šฅ ์ด์Šˆ ์‚ฌ์ „ ๋ถ„์„ ๋ฐ ๊ฐœ์„  ๋ฐฉํ–ฅ ๋„์ถœ