1

JSON文字列を返すためにphpファイルを呼び出すこのjavascriptファイルがあります。Chrome 開発ツールは、JavaScript コードの 10 行目でエラーをスローしています。エラーがブラケットの欠落に関連していることは知っていますが、私とそれを見た他の3人の人生にとって、構文は正しいです。

var request = new XMLHttpRequest();
var listings = [];
var json;
var url = "getListing.php";
request.open("GET", url, true);
request.send();
request.onreadystatechange = function(e)
{
if(request.readyState == 4){
    json = JSON.parse(request.responseText);

    for(var x = 0; x < json.length; x++){
        var list = new listingInfo();
        list.category = json[x].category;
        list.date = json[x].dateListed;
        list.description = json[x].description;
        list.id = json[x].listingID;
        list.title = json[x].title;
        list.userID = json[x].userID;
        listings.push(list);
    }   
}
console.log(listings);
}

ここにphpファイルがあります

<?php
session_start();
$con = mysql_connect("localhost", "listAdmin", "hermes");
if(!$con)
{
    die('Could not connect: ' . mysql_error());
}

mysql_select_db("GregsList", $con)
    or die("Unable to select database:" . mysql_error());

$result = mysql_query("SELECT * FROM Listings WHERE userID = '$_SESSION[userID]' ORDER BY dateListed DESC");

#converts to json
$rows = array();
while($r = mysql_fetch_assoc($result)) 
{
        $rows[] = $r;
}

#If you want to see if correct json is printing use ---> print json_encode($rows);

return json_encode($rows);
?>
4

1 に答える 1

2

request.readyState == 4 では不十分です。request.status== 200 を追加する必要があります。php スクリプトを次のように置き換えますreturn json_encode($rows);print json_encode($rows);

于 2013-11-04T06:16:27.720 に答える