Javascript Json适用于某些变量,但不适用于其他变量
我制作了一个脚本,通过Json请求信息。对于某些变量,这很好,但对于其他变量,则不然。Javascript Json适用于某些变量,但不适用于其他变量,javascript,php,json,Javascript,Php,Json,我制作了一个脚本,通过Json请求信息。对于某些变量,这很好,但对于其他变量,则不然。 当我对变量neigur1使用alert()时,它表示变量未定义,而对变量编号和颜色使用相同的方法时,它工作得很好 这是请求脚本: function getcolours() { var hr = new XMLHttpRequest(); hr.open("GET", "camp_map_script.php", true); hr.setRequestHea
当我对变量neigur1使用
alert()
时,它表示变量未定义,而对变量编号和颜色使用相同的方法时,它工作得很好
这是请求脚本:
function getcolours() {
var hr = new XMLHttpRequest();
hr.open("GET", "camp_map_script.php", true);
hr.setRequestHeader("Content-type", "application/json");
hr.onreadystatechange = function () {
if (hr.readyState == 4 && hr.status == 200) {
var data = JSON.parse(hr.responseText);
for (var obj in data) {
number = data[obj].number;
colour = data[obj].colour;
neighbour1 = data[obj].n1;
alert (neighbour1);
window["colour" + number] = colour;
var x = document.getElementsByClassName(number + ' ' + colour);
x[0].style.display = "block";
}
}
}
hr.send(null);
}
这是php部分:
<?php
include_once("../php_includes/check_login_status.php");
?><?php
$number = "";
$sql = "SELECT camp_id FROM users WHERE username='$log_username'";
$query = mysqli_query($connect, $sql);
$row = mysqli_fetch_row($query);
$campid = $row[0];
$sql = "SELECT players FROM campaigns WHERE id='$campid'";
$query = mysqli_query($connect, $sql);
$row = mysqli_fetch_row($query);
$players = $row[0];
$number = ($players*2)-1;
$sql = "SELECT number, colour, player, n1, n2, n3, n4, n5, n6, n7, n8 FROM lands WHERE camp_id='$campid' ORDER BY number";
$query = $connect->query($sql);
$jsonData = '{';
if ($query->num_rows > 0) {
while($row = $query->fetch_assoc()) {
$jsonData .= '"obj'.$row["number"].'":{"number":"'.$row["number"].'", "colour":"'.$row["colour"].'", "player":"'.$row["player"].'", "n1":"'.$row["n1"].'"},';
}
}
$jsonData = chop($jsonData, ",");
$jsonData .= '}';
echo $jsonData;
$connect->close();
?>
console.log(数据)是什么;类似于?console.log(“neighbour1是%d”,neighbour1)代码>告诉我`VM364:2 neighbour1 is NaN`当您在php中回显行['n1']时得到了什么值?它是字符串,数字,是什么类型的?既然你在循环,邻域1总是没有定义吗?n1是一个数字。当回显时,它是这样的{“obj1”:{“number”:“1”,“color”:“red”,“player”:“ivaldir”,“n1”:“2”},我在其他地方定义变量。