這裏是我的JavaScript:jQuery的 - Ajax不是返回JSON響應
$.ajax({
url: 'CheckColorPrice.php',
type: 'POST',
data: {
url: '<?php echo $LINK;?>',
ColorId: ColorNumber
},
dataType: 'json',
success: function (data) {
$('#LoadingImage').hide();
$("#PRICE").text("£ " + data["price"]);
}
});
這裏是CheckColorPrice.php:
<?PHP
$url = $_POST['url'];
$ColorId = $_POST['ColorId'];
if(isset($_POST['url']))
{
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTMLFile($url);
$xpath = new DOMXpath($doc);
$DataVariants = $xpath->query('//span[@class="ImgButWrap"]/@data-variants')->item(0)->nodeValue;
$jsonStart = strpos($DataVariants, '[');
$jsonEnd = strrpos($DataVariants, ']');
$collections = json_decode(substr($DataVariants, $jsonStart, $jsonEnd - $jsonStart + 1));
foreach ($collections as $item) {
$ColVarId = $item->ColVarId;
$SizeNames = [];
$SellPrice = [];
foreach ($item->SizeVariants as $size) {
$SizeNames[] = $size->SizeName;
$SellPrice[0] = $size->ProdSizePrices->SellPrice;
}
$names = implode(',', $SizeNames);
$price = implode('', $SellPrice);
if($ColVarId == $ColorId){
$healthy2 = array('£',' ','Â');
$yummy2 = array('','','');
$price = str_replace($healthy2, $yummy2, $price);
$PRICE = $price;
echo "price: ", json_encode($PRICE), "\n";
}
}
}
?>
從CheckColorPrice.php結果看,就像這樣:
price: "37.99"
我的錯誤在哪裏,爲什麼它沒有正確接收到響應。我一點都不明白......你能幫我一把嗎?
在此先感謝!
你有下面這行:'回聲 「價格」,json_encode($ PRICE), 「\ n」;'〜這意味着你是返回一個字符串,而不是一個JSON對象。如果你打算使用json數據,php應該這樣做:''echo json_encode(array('price'=> $ price));'' – RamRaider