2012-04-21 4 views
1

HTML :AJAX - json string의 일부분에 경고하는 방법?

<html> 
<head> 
<title>AJAX</title> 
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script> 
<script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script> 
<script src="testing.js" type="text/javascript"></script> 
<script src="http://www.json.org/json2.js"></script> 
</head> 
<body> 
<input type="button" value="btnText" id="btntext" /> 
<input type="button" value="btnJSON" id="btnjson" /> 
</body> 
</html> 

PHP :

<? 
header('Content-type: application/json'); 
echo '{"id": 1, "name": "abc", "email": "[email protected]"}'; 
?> 

JS는 :

$(document).ready (function() { 
    $("#btntext").click(function() { 
     $.get("testing.text", function (data) { 
      alert(data); 
     }); 
    }); 

    $("#btnjson").click(function() { 
     $.get("testing.php", function (data) { 
      alert(data); 
     }); 
    }); 
}); 

텍스트 버튼을 클릭, 경고는 잘 작동합니다. json 버튼을 클릭하면 경고 메시지에 'header ('Content-type : application/json ')가 표시됩니다. echo '{ "id": 1, "name": "abc", "email": "[email protected]"}'

json 버튼을 클릭하면 경고 할 수 있습니다. '[email protected]'을 보여줄 전자 메일 만 보내시겠습니까?

+3

경고가 전체 PHP 스크립트 텍스트를 표시한다는 사실은 좋은 징조가 아닙니다. 이는 서버에 문제가있어 PHP가 해석되지 않고 있음을 나타냅니다. –

+0

필자는 개인적으로'alert()'보다는 디버깅에'console.log()'를 선호한다.하지만 여기에는 문제가 없다. – Blake

답변

1

PHP를 실행하기 위해 서버없이 실행하면 코드가 나타나고 해석되지 않습니다. 예 : http url이 아니라 html 파일을 직접 실행합니다.

이 문제를 해결하면 alert(data.email);으로 전화하여 전자 메일을 볼 수 있습니다.

0

data.email 당신에게 이메일 속성의 가치를 줄 것입니다.

+0

은 '정의되지 않음'을 반환합니까? –

+0

@ Melissa Kelley가 페이지를 .php로 저장하고 서버에서 실행했습니다. – undefined

+0

@ MelissaKelley 서버가 문자열로 반환하기 때문에 먼저 JSON을 구문 분석해야 할 수도 있습니다. JSON.parse (data) .email을 사용해보십시오. – McGarnagle