[PHP] 클라이언트에서 JSON 데이터 호출하기

2022. 10. 17. 02:02Program/PHP

157_PHP 클라이언트에서 JSON 데이터 호출하기

[요약]

  • AJAX를 사용하여 자바스크립트 언어로 JSON 데이터와 PHP 파일을 호출하는 방법에 대해 알아보자.

JSON 데이터를 출력하는 페이지를 만들어봤다.

이 데이터를 클라이언트 사이드에서 페이지 변환없이 호출하고 반환된 데이터를 사용하는 방법에 대해 알아보자.

페이지 변환 ㅇ벗이 데이터를 주고 받으려면 AJAX(Asnchronous JavaScript And XML)를 사용한다.

 

AJAX에 대해 간단히 확인해보자.

AJAX는 웹 서비스에서 많이 사용되고 있는 기능이다.

[좋아요], [공감], [비공감], [중복 아이디 확인] 등 들이 이에 해당한다고 할 수 있다.

클릭하여도 페이지의 변환 없이 해당 데이터를 요청하고 반환된 값에 따라 페이지에 액션을 취하도록 해준다.

 

이 기능은 클라이언테에서 구현하므로 script 태그 내에서 코드를 작성한다.

AJAX 기능을 구현하기 위해 이미 구현되어 있는 XMLHttpRequest 클래스를 사용한다.

 

다음 AJAX 기능을 구현하는 기본 코드이다.

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
// 기능 구현
}; xhttp.open(전송 방식, 요청할 파일, true);
xhttp.send(전송값);

전송 방식에는 GET 또는 POST 를 입력한다.

요청할 파일에는 JSON 데이터를 반환하는 파일을 적는다.

전송값에 전송할 값이 있다면 값을 적고, 없다면 공백으로 둔다.

 

기능 구현에는 요청한 데이터를 받은 후 웹페이지에 구현할 기능을 적는다.

요청받은 데이터는 this.responseText에 대입된다.

 

다음은 [157-1_json] 파일에 있는 데이터를 요청하고 값을 확인하는 예제이다.

[예제: 160_ajax.php ]

<!DOCTYPE html>
<html lang="ko">
<head>
  <script>
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        console.log(this.responseText);
        data = JSON.parse(this.responseText);
        console.log(data.student);
      }
    };
    xhttp.open("POST", "http://localhost/php/contents/157-1.json", true);
    xhttp.send();
  </script>
</head>
<body>
</body>
</html>

실행결과

위 결과 그림의 첫 번째 라인에 출력된 값은 [157-1.json] 파일에 있는 JSON 데이터이다.

두 번째 라인에 표시된 값은 [예제 160]의 10라인 명령문에 대한 값이 student에 담긴 값이다.

 

이렇게 간다하게나마 웹브라우저에서 작동하는 언어인 자바스크립트의 AJAX 기능을 통해 외부 파일의 데이터를 가져오는 방법에 대해 알아보았다.

 

 

 


 

 

 

초보자를 위한 PHP 200제
김태영 지음 | 정보문화사