테스트 사이트 - 개발 중인 베타 버전입니다

ajax json으로 넒긴 값을 php 에서 파싱해보려면 어떻게 해야 하나요? 채택완료

putty 9년 전 조회 14,203

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개

채택된 답변
+20 포인트

test.php 파일 직접 만드신 거 아닌가요?

저기에서 디비에 붙어서 값 갖고 올 때 리턴하는 것들만 json으로 인코딩해서 넘기셨을 테고...

 

그 다음으로는

var obj = jSON.parse(data);

이거 밑에

console.log(obj);

이렇게 하시면 개발자 도구에서 넘어온 값 확인이 가능합니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

p
putty
9년 전
개발자 도구 네트워크 XHR 에서 확인이 가능 하네요;; 감사합니다

댓글을 작성하려면 로그인이 필요합니다.

F
9년 전

윗 분 말씀대로 받는 페이지에서 

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);

}

});

 

콘솔창에 몇번 찍어보시고 하다보면 쉽게 알수 있을거에요. 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

p
putty
9년 전
그런거군요;; 조언 감사드립니다

댓글을 작성하려면 로그인이 필요합니다.

SLOOP
9년 전
echo $_POST['search_company']; 이렇게 확인 가능합니다.

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

p
putty
9년 전
그건 그냥 포스트 변수 찎어보는거 아닌가요?;;

댓글을 작성하려면 로그인이 필요합니다.

$json = json_decode($str, true);

 

json_decode로 확인할 수 있는것으로 알고 있습니다. 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

p
putty
9년 전
json_decode 안에 어떤 변수를 넣어야 하나요?
success 에 data로 들어온 스크립트변수를 php 변수에 어떻게 넣어야 하는지;

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인