MapleStory Cookie With Halo

โœจ UI/๐Ÿ’› JS

[JS]ajax : ๋น„๋™๊ธฐ ํ†ต์‹ ๊ธฐ๋ฒ•

๋‰ด์ด NUEY 2024. 12. 29. 03:08
๋ฐ˜์‘ํ˜•

 

ajax
Asynchronous Javascript And Xml

 

 

  • ์šฐ๋ฆฌ๊ฐ€..๊ตฌ๊ธ€์ด๋‚˜ ๋„ค์ด๋ฒ„์—์„œ ๋ญ”๊ฐ€๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ฉด ๊ฒ€์ƒ‰๊ฒฐ๊ณผ์ฐฝ์ด ๋‚˜์˜ค์ž–์•„์š”.
  • ์—์ด์ ์Šค๋Š” ์ฐฝ์ด ๋ฐ”๋€Œ์ง€ ์•Š๊ณ  ์œ„์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋ฅผ ๋น„๋™๊ธฐ ํ†ต์‹  ๊ธฐ๋ฒ•์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

API Docs
https://api.jquery.com/jQuery.ajax/
json ํ‘œํ˜„ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

2024.12.28 - [โœจ UI/๐Ÿ’› JS] - [JS]JSON

 

 

  • url : ํ†ต์‹ ํ•  ์„œ๋ฒ„๋‚˜ ํŒŒ์ผ ์ฃผ์†Œ.

  • method : get / post ์ค‘ ์„ ํƒ.

  • async : default: true (false๋Š” ๋™๊ธฐ์‹).

  • dataType : ํ†ต์‹ ์ด ์„ฑ๊ณตํ•˜๋ฉด ๋ฆฌํ„ด๋ฐ›์„ data์˜ type (text, xml, json, ...)

  • success : (์œ„ ๋„ค๊ฐœ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ ์–ด) ํ†ต์‹  ์„ฑ๊ณตํ–ˆ์„ ๋•Œ ์‹คํ–‰ํ•  ์ฝ”๋“œ๋ฅผ ์ ์–ด์ค๋‹ˆ๋‹ค.

    • ์—ฌ๊ธฐ์„œ  function(data) : data๋Š” ์„œ๋ฒ„์—์„œ ์ „๋‹ฌ๋ฐ›์€ ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. 
  • error : ์—๋Ÿฌ ์‹œ ์‹คํ–‰.

๐ŸŒŸ ajax๋Š” ํ†ต์‹  ์‹คํŒจ๋Š” ์—๋Ÿฌ๊ฐ€ ์•„๋‹ˆ๋ผ, ์‹คํŒจ ์ด์œ ๋ฅผ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋งŒ์•ฝ ํ†ต์‹  ์‹คํŒจ ์‹œ url, method, async, dataType ์ด ๋„ค๊ฐ€์ง€๋งŒ ๋‹ค์‹œ ํ™•์ธํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ „๋‹ฌ๋ฐ›์€ ๋ฐ์ดํ„ฐ

 


์ „์ฒด์ฝ”๋“œ

๋”๋ณด๊ธฐ
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>์—์ด์ ์Šค</title>
    <script type="text/javascript" src="/Java_Study_001/src/main/webapp/common/js/lib/jquery-3.7.1.min.js"></script>
    <script type="text/javascript">
        $(function(){
            $("#emp_search").click(function(){
                let empid = $("input[name=empid]").val();
                
                if (!isNaN(empid) && empid.length > 2){
                    $.ajax({
                        url: "./emplist.xml",   // ํ†ต์‹ ํ•  ์„œ๋ฒ„ or ํŽ˜์ด์ง€
                        method: "get",					
                        async: true,            // ๋น„๋™๊ธฐ ์—ฌ๋ถ€ (false๋Š” ๋™๊ธฐ์‹)
                        dataType: "xml",        // ๋ฆฌํ„ด๋ฐ›์„ ๋ฐ์ดํ„ฐ ํƒ€์ž…
                        success: function(data){			
                                    let empInfo = $(data).find("EMPLOYEE_ID:Contains("+empid+")").parent();
                                    
                                    if (empInfo.is("ROW")){
                                        $("table input").each(function(i){
                                            $(this).val($(empInfo).children().eq(i).text());
                                        });
                                }
                        },
                        error: function(request, error){	
                            alert("code: " + request.status+"\n" +
                                "message: " + request.responseText + "\n" +
                                "error: " + error);
                        }
                    });
                } 
                // if๋ฌธ ์ž…๋ ฅ๊ฐ’ ๋ฏธ์ถฉ์กฑ์ด ๋œฐ ๊ฒฝ๊ณ ์ฐฝ
                else {
                    alert("์‚ฌ์›๋ฒˆํ˜ธ๋ฅผ ๋‹ค์‹œํ•œ๋ฒˆ ํ™•์ธํ•ด ์ฃผ์„ธ์š”!");
                }
            });
        });
    </script>
</head>
<body>
    <h1>๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ(๋น„๋™๊ธฐ)</h1>
	
	<fieldset>
		<legend>์‚ฌ์›์ •๋ณด ์กฐํšŒ</legend>
		<input type="text" name="empid" />
		<input type="button" id="emp_search" value="์กฐํšŒ" />
	</fieldset>
	
	<table>
		<tr>
			<th>์‚ฌ์›๋ฒˆํ˜ธ</th>
			<td><input type="text" name=""  /></td>
		</tr>
		<tr>
			<th>์ด๋ฆ„</th>
			<td><input type="text" name=""  /></td>
		</tr>
		<tr>
			<th>์ด๋ฉ”์ผ</th>
			<td><input type="text" name=""  /></td>
		</tr>
		<tr>
			<th>์ „ํ™”๋ฒˆํ˜ธ</th>
			<td><input type="text" name=""  /></td>
		</tr>
		<tr>
			<th>์ž…์‚ฌ์ผ</th>
			<td><input type="text" name=""  /></td>
		</tr>
    </table>
</body>
</html>

 

๋ฐ˜์‘ํ˜•