2013-02-11 5 views
0

본질적으로 데이터베이스를 쿼리 한 다음 JS에 다시 데이터를 게시하는 AJAX 요청이 있지만 데이터의 개별 비트를 인쇄 할 수 없습니다.개별적으로 JSON 데이터 인쇄

$.ajax({ 
      type: 'POST', 
      url: '_process/offerrespres.php', 
      dataType: 'json', 
      data: { 
       msgid: msgid, 
       usrid: usrid 
      }, 
      success: function(){ 
       console.log(JSON.parse(data.pro_name)); 
       console.log(data.accept_decline); 
      } 
     }); 

PHP의 :

console.log(JSON.parse(data.pro_name)); 
console.log(data.accept_decline); 

콘솔에서 오류가 말한다 : 당신이 볼 수 있듯이

<?php 
include_once 'connect.php'; 
if ($_POST) { 
$msgid = mysql_escape_string($_POST['msgid']); 
$usrid = mysql_escape_string($_POST['usrid']); 
$getmsgq = mysql_query("SELECT * FROM booking_requests WHERE receiver_id = '$usrid' AND msg_id = '$msgid'"); 
$getmsg_info = mysql_fetch_array($getmsgq); 
$data['success'] = true; 
$data['date_sent'] = $getmsg_info['date_sent']; 
$data['pro_name'] = $getmsg_info['pro_name']; 
$data['accept_decline'] = $getmsg_info['accept_decline']; 
} 
header("Content-Type: application/json", true); 
echo json_encode($data); 
mysql_close(); 
?> 

나는이 시도했습니다 다음과 같이

내 코드입니다 "데이터가 정의되지 않았습니다". PHP 파일의 출력이 정확하고 어떻게되어야하는지, 단일 데이터 조각 만 인쇄 할 수 있습니다.

답변

3

콜백 함수가 인수

로 반환 된 데이터를 수락하지 않는 success: function(){를 읽어 줄은 또한 success: function(data){

해야한다는 trueheader("Content-Type: application/json", true);에 전화에 필요하지 않습니다. 이 함수의 기본 동작은 헤더를 바꾸는 것이므로 true이 이미 암시되어 있습니다. 이 인수는 이전 Content-Type을 바꾸지 않으려는 경우에만 필요합니다. 코드에 아무런 차이가 없으며 단지 팁입니다.

+0

감사합니다. 치료를 했어. 또한 data.pro_name이 올바르게 작동했습니다 (JSON.parse없이) –

+0

@Steve_M 여러분 환영합니다. 문제가 해결되면 다른 사람이 해당 질문에 답변했음을 알 수 있도록 답변을 수락 한 것으로 표시하십시오. –

0

성공 함수에서 데이터 변수를 지정하지 않았습니다. 다음과 같아야합니다.

success: function(data){ 
    console.log(JSON.parse(data.pro_name)); 
    console.log(data.accept_decline); 
}