所以我必須文件。正在向PHP文件發出AJAX請求的JavaScript文件,該文件假定返回JSON。我已經用打印語句測試了PHP文件,並且定義了JSON。但是在javascript中,request.responseText是空的。PHP文件不會在.responseText中返回文本
的Javascript:
var mCurrentIndex = 0;
var request = new XMLHttpRequest();
var mImages = [];
var json;
var url = "fiveMostRecent.php";
request.open("GET", url, true);
request.send();
request.onreadystatechange = function(e)
{
if(request.readyState == 4 || request.readyState == 2){
console.log(request.responseText);
json = JSON.parse(request.responseText);
console.log(json);
for(var x = 0; x < json.length; x++){
var gImage = new GalleryImage();
gImage.title = json[x].title;
gImage.price = json[x].price;
gImage.description = json[x].description;
gImage.img = new Image();
gImage.img.src = json.images[x].imgPath;
makeGalleryImageOnloadCallback(gImage);
mImages.push(gImage);
}
}
console.log(mImages);
}
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());
$query = "SELECT title, description, price FROM Listings ORDER BY dateListed DESC LIMIT 5";
$result = mysql_query($query);
#converts to json
$rows = array();
while($r = mysql_fetch_assoc($result))
{
$rows[] = $r;
}
#print json_encode($rows);
return json_encode($rows);
?>
你爲什麼註釋掉'print'聲明?這是將結果發送給客戶的正確方法。 – Barmar
如何更改此行返回json_encode($ rows);返回json_encode(數組(「$ rows」=> $ rows)); – Satya
在發送請求之前設置'onreadystatechange'處理程序 - 只需將'request.send()'移動到javascript代碼段的底部。 – 2013-11-25 04:37:44