2016-01-20

php -> javascript 로의 데이터 교환 - array 형태

필요한 것은 세부적인 것인데, 이러한 글들은 언제나 찾아보기 어렵다.

이번에는 javascript로 직접 받는 데이터가 아니라, MySQL 등 로컬에 저장된 데이터를 javascript로 받아서 처리하는 부분이 문제가 되었다.

이것저것 시도해본 결과 (보안 문제를 제외하고) 다음과 같이 처리하니 잘 된다.
1. 먼저 php로 MySQL 데이터를 불러온 이후 array로 만든다.
2. 이를 json_encode를 이용해서 JSON 형태로 만든 후 SESSION 변수로 올린다.
3. javascript에서 php SESSION 변수를 받아서 그대로 처리한다^^

중요한 것은 이때 javascript에서 처리하기를 array도 되고 JSON으로도 인식한다는 점이다. php에서 javascript로 온 array를 일부러 JSON으로 만들기 위해 JSON.parse나 eval을 쓰지 않아도 된다는 것인데, 이로 미루어보아 javascript의 array와 JSON 객체는 같은 자료형임을 알 수 있다.

어떻게 보면 당연한 것이, json_encode를 이용하였으므로 JSON으로 변형된 것으로 보아야 한다. 많은 참조자료들에서 json_encode에 UTF-8 encoding 문제가 있다고 하는데, 일단 한글과 영어 처리에는 문제 없음을 확인했다.

#####################
전체처리.php
include "./보내기.php";
include "./받기.php";
#####################
보내기.php
...
$_SESSION['data'] = json_encode($data_array);
#####################
받기.php
<script>
...
var data = <?=$_SESSION['data'] ?>;
// 이후 data[index]의 형태로 접근하면 된다.
// 또한 data[index].property 형태로 JSON 접근도 허용한다.
...
</script>
#####################

또 나만 몰랐나 싶다...

No comments:

Post a Comment