ajax json으로 넒긴 값을 php 에서 파싱해보려면 어떻게 해야 하나요?
본문
function change_company(val) {
$.ajax({
type: "POST",
url:'./test.php',
data: { search_company: val },
success:function(data){
var obj = JSON.parse(data);
$.each(obj, function (key, val) {
alert(obj);
});
}
});
}
이런식으로 ajax를 넘기면 test.php에서
echo json_encode($result); 로 값을 넘겨주면
success:function(data) 값으로 들어오는데
넘긴 값이 어떤형태로 생겼는지
php 에서 echo 해볼 수 있나요?
스크립트의 변수인데 저게 가능 한가요?
답변 4
test.php 파일 직접 만드신 거 아닌가요?
저기에서 디비에 붙어서 값 갖고 올 때 리턴하는 것들만 json으로 인코딩해서 넘기셨을 테고...
그 다음으로는
var obj = jSON.parse(data);
이거 밑에
console.log(obj);
이렇게 하시면 개발자 도구에서 넘어온 값 확인이 가능합니다.
$json = json_decode($str, true);
json_decode로 확인할 수 있는것으로 알고 있습니다.
윗 분 말씀대로 받는 페이지에서
print_r($_POST);
찍어 보시면 변수 받아오는걸 보실수 있을거에요.
data값 넘기는 그대로 $_POST로 받으실수 있습니다.
$.ajax({
type: "post",
url:'./test.php',
data: { search_company: val },
success:function(data){
console.log(data);
}
});
이렇게 찍어보시면 콘솔창에서 확인하실수 있을거에요.
그런데 json으로 값을 주고 받으실려면
dataType : 'json' 항목이 들어가야 합니다.
그리고 처리하는 페이지에서도 데이터 값을 넘겨 줄때
$data=json_encode($data);
echo $data;
이런식으로 처리를 해줘야 데이터를 제대로 받으실수 있습니다.
$.ajax({
type: "post",
url:'./test.php',
data: { search_company: val },
dataType : 'json',
success:function(data){
console.log(data);
}
});
콘솔창에 몇번 찍어보시고 하다보면 쉽게 알수 있을거에요.