我正在尝试将 JSON 对象从 PHP 传递到 Javascript。该对象是从 SQL 数据库中填充的,这是我正在使用的 PHP 代码。
<?php
$conn = mysql_connect("localhost","root","");
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('db') or die( 'Error'. mysql_error() );
$query = "SELECT * FROM products;";
$results = mysql_query($query, $conn);
$return = array();
while($result = mysql_fetch_assoc($results))
{
$mount = array('product_code' => $results['product_code'], 'colour' => $results['colour'], 'price' => $results['price']);
array_push($return, $mount);
}
return json_encode($return);
?>
我更改了一些变量名称,但功能相同。
现在,当我尝试对这个 .php 文件执行 AJAX 获取时,它会在 JSON.Parse 部分代码中崩溃,如下所示:
$.get("JSON.php", function(data) {
var JSONdata = JSON.parse(data);
alert(JSONdata[0].colour);
});
我的警报只是为了测试。我了解问题可能在于我构建 $return 数组。对 JSON 来说相当新,任何帮助将不胜感激。
编辑:从下面获取所有信息,我已经更正了我的 PHP 代码,使其看起来像这样。
<?php
$conn = mysql_connect("localhost","root","");
$error = array("result" => false, "error" => mysql_error());
if(! $conn )
{
die(json_encode($error));
}
mysql_select_db('db') or die(json_encode($error));
$query = "SELECT * FROM products;";
$results = mysql_query($query, $conn);
$return = array();
while($result = mysql_fetch_assoc($results))
{
$mount = array('product_code' => $result['product_code'], 'colour' => $result['colour'], 'price' => $result['price']);
array_push($return, $mount);
}
echo json_encode($return);
?>
我正在考虑将 mysql_* 函数更改为更兼容的新版本