를 사용하여 내 웹 사이트에 표시하기 위해 데이터베이스에 연결된 PHP 파일에서 JSON 코드를 가져 오려고 시도 XMLHttpRequest
했지만 분할하여 표시 할 수 없습니다.
다음을 수행하는 PHP 파일 example.php를 사용하고 있습니다.
function jsonFromQuery($result) {
if (mysql_num_rows($result) > 0) {
while($r = mysql_fetch_array($result, MYSQL_ASSOC)) {
$json[] = $r;
}
} else {
$json = "Table is empty";
}
return json_encode($json);
}
php 파일을 열면 웹 사이트에 다음과 같은 json 코드가 표시됩니다.
[{"UserID":"2","Firstname":"Piet","Lastname":"Klaas","Age":"23","Specialization":"Voet","Branch":"Been","Interests":"Hoofd","Hospital":"OLVG","Email":"[email protected]","ProfilePicture":""}]
이를 통해 다음 자바 스크립트 파일을 사용하여이 php 파일을 요청하고 stringify하고 시도하고 표시합니다.
var request = new XMLHttpRequest;
request.open('GET' , 'http://myurl.nl/example.php', false);
request.send(null);
if (request.status == 0)
console.log(request.responseText);
var obj = JSON.stringify(request);
var firstname = obj.Firstname;
document.writeln(firstname);`
그러나 나는 유형 상태 등을 포함하는 거대한 문자열을 얻습니다. 그리고 이것을 분리하여 스스로 표시하는 방법을 모릅니다. 예를 들어 페이지에 Firstname = Piet 만 있습니다.
PHP에서 데이터를 가져 오면 이미 문자열 형식입니다. 사용할 JSON.parse()
수있는 개체로 변환하려면을 사용해야합니다. 시험...
var obj = JSON.parse(request.responseText);
var firstname = obj[0].Firstname;
document.writeln(firstname);`
또한 반환되는 Json은 객체 목록입니다 : [{...},{...},{...}]
이므로 .Firstname
관심있는 객체를 지정하지 않았으므로 호출 할 수 없습니다 . 따라서 [0]
위의 예에서 첫 번째 개체를 선택합니다.
또 다른 생각은 ... 현재 PHP가 결과를 찾지 못하면 예상 한 형식이 아닌 것을 반환 할 것입니다. 상태가있는 개체로 목록을 래핑하는 것이 좋습니다.
{
"Success": true,
"Results": [{...}, {...}]
}
또는 PHP 스크립트가 실패를 나타 내기 위해 다른 HTTP 코드를 반환하도록합니다 (여기서는 404가 적절 해 보입니다)
향후 참조를 위해 JSON.stringify는 반대의 작업을 수행합니다. 복잡한 객체를 가져 와서 Json으로 변환합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다