[英]PHP array to seperate JavaScript file via AJAX
我做了一个简单的PHP文件,它将来自MySQL数据库的数据保存到2个数组中。 我正在尝试将这两个数组发送到js文件(与html文件分开)。 我正在尝试学习AJAX,但似乎我没有做正确的事。
你能解释我在做什么错吗?
我的php文件:get.php
<?php
define('DB_NAME', 'mouse');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_HOST', 'localhost');
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}else{
echo 'Successfuly connected to database :) <br/>';
}
$sql = "SELECT x, y FROM mousetest";
$result = mysqli_query($link, $sql);
$x_array = [];
$y_array = [];
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "x: " . $row["x"]. " - y: " . $row["y"]. "<br>";
array_push($x_array, $row["x"]);
array_push($y_array, $row["y"]);
}
} else {
echo "0 results";
}
echo json_encode($x_array);
echo "<br>";
echo json_encode($y_array);
mysqli_close($link);
$cd_answer = json_encode($x_array);
echo ($cd_answer);
?>
这是我的JS文件:
$(document).ready(function(){
$.ajax({
type: "GET",
url: "get.php",
dataType: "json",
data : {anything : 1},
success:function(data){
var x = jQuery.parseJSON(data); // parse the answer
x = eval(x);
console.log(x.length);
}
});
});
我真的希望您能理解我正在尝试做的事情。 问题出在哪儿? 我真的认为这应该行得通,因为我经历了好几次,至少可以说...
您不能两次使用echo json_encode(...)
。 客户端需要一个JSON对象,而不是一系列对象。
您应该使每个数组成为包含数组的元素,然后将其作为JSON返回。
$result = array('x' => $x_array, 'y' => $y_array);
echo json_encode($result);
然后在jQuery代码中,您将使用:
var x = data.x;
var y = data.y;
另外,当您使用dataType: 'json'
,jQuery在设置data
时会自动解析JSON。 您不应该调用jQuery.parseJSON()
或eval()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.