회원가입아이디/비번찾기
실시간 TV
홈으로
[jQuery.$ajax]mysql + php 서버에서 json 데이터 얻어오기
7년 전
webapp, hybrid 프로젝트에 있어 가장 많이 쓰이는 기법인데 많은 자료가 없는 듯 해, 기본적인 예제를 통해 방법을 익힐 수 있도록 포스팅한다.
다양한 방법을 통해 db의 자료를 json형식으로 얻을 수 있겟지만, 가장 쉽게 구현할 수 있는 PHP JSON 라이브러리를 활용한 방법을 소개한다.

PHP JSON 라이브러리는 http://pear.php.net/package/Services_JSON/download/ 에서 다운로드 가능하다. 다운로드한 라이브러리(JSON.php)는 JSON데이터를 내려줄 서버에 등록하고, 코드 작성을 시작하겠다.

<?php
    require('JSON.php'); // 서버에 등록한 라이브러리

    try{
        $connection = mysql_connect("localhost","아이디","비밀번호") or die ("Could not connect: " . mysql_error());
        mysql_query("SET NAMES utf8", $connection);
        mysql_select_db("DB명", $connection);

        $sql = "SELECT * FROM 테이블";
        $sth = mysql_query($sql) or die ("Could not connect: " . mysql_error());

        //JSON객체생성
        $json = new Services_JSON();

        $rows = array();
        while($r = mysql_fetch_assoc($sth)){
            $rows[] = $r;
        }

        $output = $json->encode($rows);
        echo $output;

        mysql_close($connection);
    }catch(Exception $e){
        //로그 기록
        echo $e->getMessage();
    }
?>

이제 서버에서 JSON 데이터를 내려줄 준비는 끝났다.
다음으로 서버에 JSON 데이터를 요청하고 받은 결과를 뿌려주는 화면 영역 코드 작성을 해보자.



<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>json데이터 사용하기</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
</head>
<body>
<div id="bodySwrap">

</div><!-- //bodySwrap -->
<script>
    $.ajax({
        type:'POST',
        url:'작성한 서버 URL',
        dataType:'json',
        timeout: 10000,
        success: function(data){
            alert(data[0].subject);
            alert(data.length);
        },
        error: function(request, textStatus, errorThrown){
            //에러내용확인
            alert('error: ' + textStatus);
        },
    });
</script>
</body>
</html>


위와 같이 작성이 되었다면, 브라우저에서 화면을 열어보자.
화면을 실행하면, DB에서 출력된 JSON의 첫번째 데이터의 subject필드 팝업 출력 후 JSON데이터의 길이 팝업이 출력될 것이다.

위와 같은 기본 구조를 활용하여, 다양한 방식으로 구현 가능할 것이다.
추천추천 : 245 추천 목록
번호 제목
2,885
 input 입력 필드 앞뒤 공백 실시간 제거
2,884
 Placeholder 포커스시 감추기
2,883
 MySQL 중복된 데이터를 삭제
2,882
 MySQL 중복 데이터 확인
2,881
 sessionStorage.getItem 와 sessionStorage.setItem
2,880
 제이쿼리 랜덤으로 배경색 변경
2,879
 preg match에 관한 정규식
2,878
 Stream an audio file with MediaPlayer 오디오 파일 스트리밍 하기
2,877
 Audio Streaming PHP Code
2,876
 PHP $ SERVER 환경 변수 정리
2,875
 Vimeo (비메오) API 를 사용하여 플레이어 컨트롤하기
2,874
 iframe 사용시 하단에 발생하는 공백 제거방법
2,873
 아이프레임(iframe) 전체화면 가능하게 하기
2,872
 부트스트랩(bootstrapk)에서 사용하는 class명 정리
2,871
 부트스트랩 CSS
2,870
 크롬에서 마진 조절
2,869
 PHP 현재 페이지의 도메인명이나 url등의 정보 알아오기
2,868
 PHP preg match all()
2,867
 PHP 로 웹페이지 긁어오기 모든 방법 총정리!
2,866
 [PHP] 원격지 파일 주소 노출 안하고 curl로 다운로드 받기
2,865
 PHP 함수 정리
2,864
 아이프레임(iframe) 비율 유지하면서 크기 조절하는 방법
2,863
 PHP 배열에서 무작위로 하나 뽑아주는 array rand() 함수
2,862
 PHP 정규식 정리
2,861
 PHP 정규식을 활용한 태그 및 특정 문자열 제거 및 추출 방법
2,860
 php 크롤링 또는 파싱 함수, 정규식 모음
2,859
 제이쿼리 기본 명령어
2,858
 웹페이지 가로 모드세로 모드 인식하기
2,857
 모바일 웹 화면 강제 회전(가로모드 고정)
2,856
 [HTML5]에서 frameset 대체 방법과 iframe 속성
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright ⓒ musictrot All rights reserved.