웹 개발 메모장
[JQuery] AJAX 기본 구문 및 예제 본문
$.ajax()
AJAX 는 클라이언트와 서버가 페이지 새로고침 없이 데이터를 주고받도록 구현하는 방식을 말합니다.
기본 구문
1 2 3 4 5 6 7 8 9 10 11 | $.ajax({ url:'/study/tmp/test.php', //request 보낼 서버의 경로 type:'post', // 메소드(get, post, put 등) data:{'id':'admin'}, //보낼 데이터 success: function(data) { //서버로부터 정상적으로 응답이 왔을 때 실행 }, error: function(err) { //서버로부터 응답이 정상적으로 처리되지 못햇을 때 실행 } }); | cs |
예제. 회원 목록을 추가 하기
페이지 전체를 호출하는 방식
[memeber 추가 시 페이지 전체 새로 호출]
AJAX 를 통해 호출하는 방식
[member 추가 시 페이지 호출 없이 회원 테이블만 새로 뿌려줌]
소스코드
페이지 전체를 호출하는 예제
submit 받고 처리하는 php 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php require $_SERVER['DOCUMENT_ROOT'].'/study/tmp/App_Data/UserDAO.php'; //form 을 통해 넘어온 데이터들을 받아서 $userid = $_REQUEST["userid"]; $userpw = $_REQUEST["userpw"]; $username = $_REQUEST["username"]; $userphone = $_REQUEST["userphone"]; //DB에 넣고 $userDAO = new UserDAO(); $userDAO->insertMember($userid, $userpw, $username, $userphone); //다시 test.02.php로 리다이렉트 header("Location:/study/tmp/view/test02.php"); ?> | cs |
AJAX 방식으로 호출하는 예제
submit 발생 시 처리하는 자바스크립트 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | function insertMemberAJAX() { var jObject = new Object(); jObject.userid = $('#userid').val(); jObject.userpw = $('#userpw').val(); jObject.username = $('#username').val(); jObject.userphone = $('#userphone').val(); initInput(); var data = JSON.stringify(jObject); $.ajax({ url:'/study/tmp/controller/UserAJAX.php', type: 'post', data: {'data':data, 'type':'addMember'}, success : function(data){ callMemberList(); } }); } | cs |
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 | function callMemberList() { $.ajax({ url:'/study/tmp/controller/UserAJAX.php', type:'post', data:{'type':'getMemberList'}, success: function(data) { var arr = JSON.parse(data); var htmlCode = ''; htmlCode += '<tr>' htmlCode += '<th>idx</th>' htmlCode += '<th>ID</th>' htmlCode += '<th>Name</th>' htmlCode += '<th>phone</th>' htmlCode += '<th>Delete</th>' htmlCode += '</tr>' for(var i=0;i<arr.length;i++){ htmlCode += '<tr>' htmlCode += '<td>'+arr[i]['idx'];+'</td>' htmlCode += '<td>'+arr[i]['userid'];+'</td>' htmlCode += '<td>'+arr[i]['username'];+'</td>' htmlCode += '<td>'+arr[i]['userphone'];+'</td>' htmlCode += '<td class="deleteBtn">X</td>' htmlCode += '</tr>' } $('#member_table').append(htmlCode); $('#loadingImg').hide(); } }); } | cs |
AJAX 에서 호출하는 페이지의 php코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php require $_SERVER['DOCUMENT_ROOT'].'/study/tmp/App_Data/UserDAO.php'; $type = $_REQUEST["type"]; if($type == 'getMemberList') { $userDAO = new UserDAO(); $user = $userDAO->getUserList(); echo json_encode($user, JSON_UNESCAPED_UNICODE ); //한글 데이터라면 한글 깨짐 방지 }else if($type == 'addMember') { $data = $_REQUEST["data"]; $arr = json_decode($data, true); $userid = $arr["userid"]; $userpw = $arr["userpw"]; $username = $arr["username"]; $userphone = $arr["userphone"]; $userDAO = new UserDAO(); $userDAO->insertMember($userid, $userpw, $username, $userphone); } ?> | cs |
'옛날.. > 자바스크립트' 카테고리의 다른 글
[자바스크립트] 같은 그림 맞추기 게임 (4) | 2018.02.08 |
---|---|
[자바스크립트] snake game (꼬리물기 게임 / 뱀 게임) (4) | 2018.02.05 |
[자바스크립트] AJAX 란? (0) | 2018.01.15 |
[JQuery] 스크롤 내리면 다음 글 불러오기 (scroll 이벤트) (0) | 2018.01.12 |
[jQuery] textarea에 글자 입력할 때 글자 수 카운트 예제 (0) | 2018.01.12 |
Comments