Web programming

(22.11.09)Web ํ”„๋กœ๊ทธ๋ž˜๋ฐ:AJAX๋ฐฉ์‹์„ ์ด์šฉํ•œ MVC/JSON,json-simple.jar

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2022. 11. 9.

์‚ฌ์šฉ์ž ์ •๋ณด ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ AJAX ์š”์ฒญ์œผ๋กœ ๊ตฌํ˜„

์‚ฌ์šฉ์ž ์ •๋ณด ์ถ”๊ฐ€ ์„ฑ๊ณต์‹œ ํ•ด๋‹น ์ •๋ณด์˜ ์ƒ์„ธ์ •๋ณด ํ™”๋ฉด์œผ๋กœ ์ด๋™

 

 

Cache

 

userRegForm.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>์ด์šฉ์ž ์ •๋ณด ๋“ฑ๋ก</title>
<style type="text/css">
   #main {width:fit-content; margin:0 auto; }
   h3 { text-align: center; }
   form { width:fit-content; border:1px solid black; padding:1em;
      margin:0 auto; }
   label { margin-right:1em; }
   form>div { margin:0.3em; }
   button { display:block; margin:5px auto; }
</style>
<script src="https://code.jquery.com/jquery-3.6.1.min.js" 
integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous"></script>
<script type="text/javascript"> //์ ์šฉ์„ ๋ˆ„๋ฅด๋ฉด form์ด ๋‚˜๊ฐ€๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์ด ํ•จ์ˆ˜๊ฐ€ ๋Œ์•„๊ฐ€๊ฒŒ๋” ํ•ด์•ผํ•œ๋‹ค.
    function savedUser()
    {
        //ํผ์— ์ž…๋ ฅ๋œ ์ด์šฉ์ž ์ •๋ณด๋ฅผ ๋น„๋™๊ธฐ์ „์†ก ์š”์ฒญ์œผ๋กœ ์ „๋‹ฌํ•˜๊ณ  
        //์‘๋‹ต์„ ํ˜„ ํŽ˜์ด์ง€์—์„œ ๋ฐ”๋กœ ๋ฐ›์•„์„œ ์„ฑ๊ณต ์‹คํŒจ ์—ฌ๋ถ€๋ฅผ alert๋กœ ํ‘œ์‹œํ•œ๋‹ค.
        //์ด์šฉ์ž๊ฐ€ ํ™•์ธ์„ ๋ˆ„๋ฅด๋ฉด ๋ชฉ๋ก ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•œ๋‹ค.
        //ํผ์— ์žˆ๋Š” ๊ฐ’๋“ค์„ ๋ฝ‘์•„์„œ ๋น„๋™๊ธฐ ์š”์ฒญ์œผ๋กœ ์ „๋‹ฌํ•œ๋‹ค.
        //#์€ id ์…€๋ ‰ํ„ฐ
        /*var cmd = $('#cmd').val();
        var num = $('#num').val();
        var email = $('#email').val();*/
        var serData = $('#userRegForm').serialize();
        var num = $('#num').val();
        
        $.ajax({
            url:'userc'//url์— ๋งž๊ฒŒ ์ค˜์•ผํ•œ๋‹ค.
            method:'post',// url, method, data์€ ์„œ๋ฒ„์— ๋Œ€ํ•œ ์š”์ฒญ์ด๋‹ค. 
            data: serData,
            cache : false,
 
            dataType: 'json'//text๊ฐ€ ์•„๋‹Œ json์œผ๋กœ ํ•˜๋ฉด var jsobj = JSON.parse(res); ์ด ์ฝ”๋“œ๋ฅผ ํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ ธ์„œ ๊ฐ„์†Œํ™”๋œ๋‹ค.
            success: function(res){ //์œ„์—์„œ ์˜จ ์š”์ฒญ์—๋Œ€ํ•œ ์„œ๋ฒ„์˜ ์‘๋‹ต์ด ์—ฌ๊ธฐ๋กœ ๋“ค์–ด์˜จ๋‹ค.
                alert(res.saved? '์‚ฌ์šฉ์ž ์ถ”๊ฐ€ ์„ฑ๊ณต':'์—๋Ÿฌ'); //res์—์„œ์˜ saved๋ฅผ ๋„ฃ์–ด์ค˜์•ผํ•œ๋‹ค.
                if(res.saved){
                    location.href = 'userc?cmd=detail&num='+num;
                }
            },
            error : function(xhr,status,err){
                //xhr : XMLHTTPRequest(๋น„๋™๊ธฐ์š”์ฒญ์„ ์œ„ํ•œ ๊ฐ์ฒด)
                // status :์‘๋‹ต ์ƒํƒœ์ฝ”๋“œ(200:์ •์ƒ, 500:์‹คํ–‰์˜ค๋ฅ˜, 400:url ์š”์ฒญ ์˜ค๋ฅ˜)
                alert(err);
            }
        });
    }
</script>
</head>
<body>
<div id="main">
<h3>์‚ฌ์šฉ์ž ์ •๋ณด ๋“ฑ๋ก</h3>
<form id = 'userRegForm' action="userc" method="post">
   <input type="hidden" name="cmd" value="reg">
   <div><label>๋ฒˆ ํ˜ธ</label><input id ='num'  type="text" name="num"></div>
   <div><label>์ด ๋ฆ„</label><input type="text" name="name"></div>
   <div><label>์ „ ํ™”</label><input type="text" name="phone"></div>
   <div><label>๋ฉ” ์ผ</label><input type="text" name="email"></div>
   <div><button type="button" onclick="savedUser();">์ € ์žฅ</button></div> 
</form>
</div>
</body>
</html>
cs

63์—ด์˜ ๋ฒ„ํŠผ์ด ์„œ๋ธŒ๋ฏธํŠธ๋ฉด ํผ์„ ์ œ์ถœํ•ด๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ•จ์ˆ˜๋ฅผ ๋Œ๋ฆฌ์ง€๋ฅผ ๋ชปํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์•„๋ฌด ๊ธฐ๋Šฅ์ด ์—†๋Š” ๋ฒ„ํŠผ์œผ๋กœ ๋ฐ”๊ฟ”์ค˜์•ผํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋ฌด ๊ธฐ๋Šฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ„ํŠผ์ด ํด๋ฆญ๋˜์—ˆ์„ ๋•Œ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋ผ๋Š” ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์ค˜์•ผํ•œ๋‹ค.

 

 

userController ํด๋ž˜์Šค

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
@WebServlet("/userc")
public class UserController extends HttpServlet {
 
    protected void service(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException 
    {
        response.setContentType("text/html; charset=utf-8");
        request.setCharacterEncoding("utf-8");
          
        String cmd = request.getParameter("cmd");
          
        if(cmd==null ||cmd.equals("list"))
        {
           UserService svc = new UserService(request);
           List<User> list = svc.getlist();
           request.setAttribute("list", list);
           getServletContext().getRequestDispatcher("/userlist.jsp").forward(request, response);
        }
        else if(cmd.equals("regForm"))
        {    
            getServletContext().getRequestDispatcher("/userRegForm.jsp").forward(request, response);
        }
        else if(cmd.equals("reg"))
        {
           UserService svc = new UserService(request);
           boolean saved = svc.save();
           PrintWriter out =response.getWriter();
           String json ="{\"saved\":"+saved+"}";
           out.println(json);
           out.flush();
           //getServletContext().getRequestDispatcher("/userRegResult.jsp").forward(request, response);
        }
        else if(cmd.equals("detail"))
        {
           UserService svc = new UserService(request);
           User u = svc.getUser();
           request.setAttribute("u", u);
           getServletContext().getRequestDispatcher("/userDetail.jsp").forward(request, response);
        }else if(cmd.equals("edit"))
        {
               UserService svc = new UserService(request);
               User u = svc.getUser();
               request.setAttribute("u", u);
               getServletContext().getRequestDispatcher("/userupdate.jsp").forward(request, response);
            }
        else if(cmd.equals("findByName"))
        {
           UserService svc = new UserService(request);
           List<User> list = svc.findUser();
           request.setAttribute("list", list);
           getServletContext().getRequestDispatcher("/userfind.jsp").forward(request, response);
        }else if(cmd.equals("update"))
        {
            UserService svc = new UserService(request);
            boolean update = svc.userUpdate();
            PrintWriter out =response.getWriter();
            String json ="{\"update\":"+update+"}";
            out.println(json);
            out.flush();
            //request.setAttribute("update", update);
            //getServletContext().getRequestDispatcher("/updateResult.jsp").forward(request, response);
        }else if(cmd.equals("delete"))
        {
            UserService svc = new UserService(request);
            boolean delete = svc.userDelete();
            request.setAttribute("delete", delete);
            getServletContext().getRequestDispatcher("/userDelete.jsp").forward(request, response);
        }else {
            System.err.println("์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
        }
    }
}
cs

 

์‹คํ–‰๊ฒฐ๊ณผ: 

ํ˜„ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉ์ž ์ถ”๊ฐ€ ์„ฑ๊ณต ์‹คํŒจ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์— userRegResult.jsp๊ฐ€ ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค.


์™ธ๋ถ€ ์ธํ„ฐ๋„ท์— ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์ž๋ฐ”์— ๋ถ™์–ด๋„ฃ๊ธฐ

2

3

4

๋‹ค์šด ๋ฐ›์€ ํŒŒ์ผ์€ ํ•ด๋‹น ํ•ดํ‚ค์ง€์˜ WEB-INF์˜ lib ์— ์ž„ํฌํŠธํ•ด์ค€๋‹ค.

 

json๊ฐ์ฒด ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ json map ๋ฉ”์†Œ๋“œ๋ฅผ ์‰ฝ๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.


์‚ฌ์šฉ์ž ์ •๋ณด ์‚ญ์ œ๋„ ajax ๋ฐฉ์‹์œผ๋กœ ์‚ญ์ œ ํ•˜๊ธฐ

 

userDatail.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<%@page import="com.ezen.web.hello.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% User u = (User)request.getAttribute("u"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์ƒ์„ธ๋ณด๊ธฐ</title>
<style type="text/css">
   #container { border:1px solid black; padding:1em; 
            width:fit-content; margin:0 auto; }
   label { display:inline-block; width:5em; margin-right:1em;
         border-bottom:1px solid black; }
   h3 {width:fit-content; margin:0.5em auto; }
</style>
<script src="https://code.jquery.com/jquery-3.6.1.min.js" 
integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous"></script>
<script type="text/javascript"></script>
<script>
    function deleteUser(num)
    {
        if(!confirm("์ •๋ง๋กœ ํ˜„์žฌ ์ด์šฉ์ž ์ •๋ณด๋ฅผ ์‚ญ์ œํ•˜๊ฒ ์Šต๋‹ˆ๊นŒ?")) return;
            
        var obj = {"cmd":"delete","num":num};
        $.ajax({
            url:'userc'
            method:'post',
            data: obj,
            cache : false,
            dataType: 'json',
            success:function(res){
                if(res.delete){
                    alert('์ด์šฉ์ž ์ •๋ณด ์‚ญ์ œ ์„ฑ๊ณต!');
                    location.href = "userc?cmd=list";    
                }else{
                    alert('์‚ฌ์šฉ์ž ์ •๋ณด ์‚ญ์ œ ์‹คํŒจ');
                }
            },
            err:function(xhr, status, err){
                alert(err);
            }    
        });            
    }
</script>
</head>
<body>
<h3>์ด์šฉ์ž ์ •๋ณด ์ƒ์„ธ๋ณด๊ธฐ</h3>
<div id= "container">
<div><label>๋ฒˆํ˜ธ</label> <span><%= u.getNum() %></span></div>
<div><label>์ด๋ฆ„</label> <span><%= u.getName() %></span></div> 
<div><label>์ „ํ™”</label> <span><%= u.getPhone() %></span></div> 
<div><label>์ด๋ฉ”์ผ</label> <span><%= u.getEmail() %></span></div>
[<a href="userc?cmd=list"> ๋“ฑ๋ก๋œ ์ด์šฉ์ž ์ •๋ณด ๋ณด๊ธฐ </a>]
[<a href="userc?cmd=edit&num=<%=u.getNum()%>"> ์ˆ˜์ • </a>]
[<a href="javascript:deleteUser(<%=u.getNum()%>);"> ์‚ญ์ œ </a>]
</div>
</body>
</html>
cs

 

userController class

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.json.simple.JSONObject;
 
@WebServlet("/userc")
public class UserController extends HttpServlet {
 
    protected void service(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException 
    {
        response.setContentType("text/html; charset=utf-8");
        request.setCharacterEncoding("utf-8");
          
        String cmd = request.getParameter("cmd");
          
        if(cmd==null ||cmd.equals("list"))
        {
           UserService svc = new UserService(request);
           List<User> list = svc.getlist();
           request.setAttribute("list", list);
           getServletContext().getRequestDispatcher("/userlist.jsp").forward(request, response);
        }
        else if(cmd.equals("regForm"))
        {    
            getServletContext().getRequestDispatcher("/userRegForm.jsp").forward(request, response);
        }
        else if(cmd.equals("reg"))
        {
           UserService svc = new UserService(request);
           boolean saved = svc.save();
           PrintWriter out =response.getWriter();
           //String json ="{\"saved\":"+saved+"}";
          
           JSONObject jsobj = new JSONObject();
           jsobj.put("saved",saved);
           out.println(jsobj.toJSONString());
           out.flush();
           //getServletContext().getRequestDispatcher("/userRegResult.jsp").forward(request, response);
        }
        else if(cmd.equals("detail"))
        {
           UserService svc = new UserService(request);
           User u = svc.getUser();
           request.setAttribute("u", u);
           getServletContext().getRequestDispatcher("/userDetail.jsp").forward(request, response);
        }else if(cmd.equals("edit"))
        {
               UserService svc = new UserService(request);
               User u = svc.getUser();
               request.setAttribute("u", u);
               getServletContext().getRequestDispatcher("/userupdate.jsp").forward(request, response);
            }
        else if(cmd.equals("findByName"))
        {
           UserService svc = new UserService(request);
           List<User> list = svc.findUser();
           request.setAttribute("list", list);
           getServletContext().getRequestDispatcher("/userfind.jsp").forward(request, response);
        }else if(cmd.equals("update"))
        {
            UserService svc = new UserService(request);
            boolean update = svc.userUpdate();
            PrintWriter out =response.getWriter();
            String json ="{\"update\":"+update+"}";
            out.println(json);
            out.flush();
            //  \ : ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž - ์›๋ž˜ ๊ฐ€์ง„ ๊ธฐ๋Šฅ์—์„œ ๋ฒ—์–ด๋‚˜๊ฒŒ ํ•จ
            //request.setAttribute("update", update);
            //getServletContext().getRequestDispatcher("/updateResult.jsp").forward(request, response);
        }else if(cmd.equals("delete"))
        {
            UserService svc = new UserService(request);
            boolean delete = svc.userDelete();
            //request.setAttribute("delete", delete);
            JSONObject jsobj = new JSONObject();
            PrintWriter out =response.getWriter();
            jsobj.put("delete",delete);
            out.println(jsobj.toJSONString());
            out.flush();
            //getServletContext().getRequestDispatcher("/userDelete.jsp").forward(request, response);
        }else {
            System.err.println("์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
        }
    }
}
cs

 

์‹คํ–‰ ๊ฒฐ๊ณผ:


 

button์˜ submit ๊ธฐ๋Šฅ์„ ๋‹ค์‹œ ์จ์„œ form์„ ์ „์†กํ•˜๊ธฐ ์ „์— form ๋ฐ์ดํ„ฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์ˆ˜ํ–‰ํ•˜๊ธฐ

 

userRegForm.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>์ด์šฉ์ž ์ •๋ณด ๋“ฑ๋ก</title>
<style type="text/css">
   #main {width:fit-content; margin:0 auto; }
   h3 { text-align: center; }
   form { width:fit-content; border:1px solid black; padding:1em;
      margin:0 auto; }
   label { margin-right:1em; }
   form>div { margin:0.3em; }
   button { display:block; margin:5px auto; }
</style>
<script src="https://code.jquery.com/jquery-3.6.1.min.js" 
integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous"></script>
<script type="text/javascript"> //์ ์šฉ์„ ๋ˆ„๋ฅด๋ฉด form์ด ๋‚˜๊ฐ€๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์ด ํ•จ์ˆ˜๊ฐ€ ๋Œ์•„๊ฐ€๊ฒŒ๋” ํ•ด์•ผํ•œ๋‹ค.
    function savedUser()
    {
        //ํผ์— ์ž…๋ ฅ๋œ ์ด์šฉ์ž ์ •๋ณด๋ฅผ ๋น„๋™๊ธฐ์ „์†ก ์š”์ฒญ์œผ๋กœ ์ „๋‹ฌํ•˜๊ณ  
        //์‘๋‹ต์„ ํ˜„ ํŽ˜์ด์ง€์—์„œ ๋ฐ”๋กœ ๋ฐ›์•„์„œ ์„ฑ๊ณต ์‹คํŒจ ์—ฌ๋ถ€๋ฅผ alert๋กœ ํ‘œ์‹œํ•œ๋‹ค.
        //์ด์šฉ์ž๊ฐ€ ํ™•์ธ์„ ๋ˆ„๋ฅด๋ฉด ๋ชฉ๋ก ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•œ๋‹ค.
        //ํผ์— ์žˆ๋Š” ๊ฐ’๋“ค์„ ๋ฝ‘์•„์„œ ๋น„๋™๊ธฐ ์š”์ฒญ์œผ๋กœ ์ „๋‹ฌํ•œ๋‹ค.
        //#์€ id ์…€๋ ‰ํ„ฐ
        /*var cmd = $('#cmd').val();
        var num = $('#num').val();
        var email = $('#email').val();*/
        var serData = $('#userRegForm').serialize();
        var num = $('#num').val();
        
        $.ajax({
            url:'userc'//url์— ๋งž๊ฒŒ ์ค˜์•ผํ•œ๋‹ค.
            method:'post',// url, method, data์€ ์„œ๋ฒ„์— ๋Œ€ํ•œ ์š”์ฒญ์ด๋‹ค. 
            data: serData,
            cache : false,
 
            dataType: 'json'//text๊ฐ€ ์•„๋‹Œ json์œผ๋กœ ํ•˜๋ฉด var jsobj = JSON.parse(res); ์ด ์ฝ”๋“œ๋ฅผ ํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ ธ์„œ ๊ฐ„์†Œํ™”๋œ๋‹ค.
            success: function(res){ //์œ„์—์„œ ์˜จ ์š”์ฒญ์—๋Œ€ํ•œ ์„œ๋ฒ„์˜ ์‘๋‹ต์ด ์—ฌ๊ธฐ๋กœ ๋“ค์–ด์˜จ๋‹ค.
                alert(res.saved? '์‚ฌ์šฉ์ž ์ถ”๊ฐ€ ์„ฑ๊ณต':'์—๋Ÿฌ'); //res์—์„œ์˜ saved๋ฅผ ๋„ฃ์–ด์ค˜์•ผํ•œ๋‹ค.
                if(res.saved){
                    location.href = 'userc?cmd=detail&num='+num;
                }
            },
            error : function(xhr,status,err){
                //xhr : XMLHTTPRequest(๋น„๋™๊ธฐ์š”์ฒญ์„ ์œ„ํ•œ ๊ฐ์ฒด)
                // status :์‘๋‹ต ์ƒํƒœ์ฝ”๋“œ(200:์ •์ƒ, 500:์‹คํ–‰์˜ค๋ฅ˜, 400:url ์š”์ฒญ ์˜ค๋ฅ˜)
                alert(err);
            }
        });
    }
    function formCheck(){
        var num = $('input[name=num]').val();
        var name = $('input[name=name]').val();
        var phone = $('input[name=phone]').val();
        var email = $('input[name=email]').val();
        if(num==''|| name==''|| phone==''|| email==''){
            alert('๋ชจ๋“  ํ•ญ๋ชฉ ์ž…๋ ฅ์€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.');
            return false;
        }
        alert('์ •์ƒ์ ์œผ๋กœ ์ž…๋ ฅํ•˜์—ฌ ํผ์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.');
        return false;
    }
</script>
</head>
<body>
<div id="main">
<h3>์‚ฌ์šฉ์ž ์ •๋ณด ๋“ฑ๋ก</h3>
<form id = 'userRegForm' action="userc" method="post" onsubmit="return formCheck();">
   <input type="hidden" name="cmd" value="reg">
   <div><label>๋ฒˆ ํ˜ธ</label><input id ='num'  type="text" name="num"></div>
   <div><label>์ด ๋ฆ„</label><input type="text" name="name"></div>
   <div><label>์ „ ํ™”</label><input type="text" name="phone"></div>
   <div><label>๋ฉ” ์ผ</label><input type="text" name="email"></div>
   <div><button type="submit" >์ € ์žฅ</button></div>
   <!-- <div><button type="button" onclick="savedUser();">์ € ์žฅ</button></div>  -->
</form>
</div>
</body>
</html>
 
cs

 

์‹คํ–‰๊ฒฐ๊ณผ:

์ €์žฅ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด submit์ด ์‹คํ–‰๋˜๊ณ  ๋ธŒ๋ž‘์šฐ์ € form์„ ๋ณด๋‚ด๊ธฐ ์ „์— formCheck() ํ•จ์ˆ˜๊ฐ€ ๋Œ์•„๊ฐ„๋‹ค. 

์ด๋•Œ  label์— id์„ ์ฃผ์ง€ ์•Š๋”๋ผ๋„ ajax์˜ ๋ฐฉ์‹์œผ๋กœ' input[ ]' ์„ ์จ์„œ ๊ฐ์ฒดํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค.

4๊ฐ€์ง€ ์†์„ฑ์ค‘ ๋นˆ ๊ฐ’์ด ์žˆ๋‹ค๋ฉด ๋ชจ๋“  ํ•ญ๋ชฉ์„ ๋‹ค ์ž…๋ ฅํ•˜๋ผ๊ณ  alert์ฐฝ์„ ๋„์šธ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

๋Œ“๊ธ€