我想从我的SQL数据库中检索数据并在我的HTML页面上使用它。
我有一个像这样的PHP脚本get_score.php
:
<?php
$con = mysqli_connect( "localhost", "xxx1", "xxx2", "xxx3");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT `name`, `score` FROM crossstreet ORDER BY `score` DESC LIMIT 5";
if (!mysqli_query($con, $sql))
{
die('Error: ' . mysqli_error($con));
}
$result = mysqli_query($con, $sql);
while ($row = mysqli_fetch_assoc($result)) {
$output = ($row["name"]);
}
mysqli_free_result($result);
echo json_encode($result);
mysqli_close($con);
?>
然后我想通过JQuery检索数据。我已经阅读了关于跨源问题,但我检索的数据和html / Jquery在同一台服务器上。
$.get("get_score.php", function( data ) {
console.log(window[data]);
}, "json" );
返回undefined
。如果我将其设为$(data)
,则会返回与此屏幕截图中的对象类似的对象。
我的错误在哪里;我怎样才能从服务器获取数据以在html中使用?
答案 0 :(得分:2)
您需要使$output
成为一个数组,以便获得所有行。
$output = array();
while ($row = mysqli_fetch_assoc($result)) {
$output[] = $row['name'];
}
然后你应该回应一下:
echo json_encode($output);
在你的jQuery代码中,你应该console.log(data);
答案 1 :(得分:0)
mysqli_free_result($result);
echo json_encode($result);
我认为这是问题所在。 尝试颠倒顺序。在使用之前,您正在使结果自由。 这样做,而不是上述。
echo json_encode($result);
mysqli_free_result($result);