嗨,兄弟姐妹们
我的第一篇文章,我是 json 的新手,并且在将数据放入 jvqmap 时遇到问题,如果我添加一个 var 即
var sample_data = ({
"gb":"6","us":"3"
});
但不是动态的,我认为需要传递一个对象,因为入站数据在控制台中显示为 json 数组只是一种预感,但不知道如何使用 ajax 做到这一点。 下面是 JSON 响应。 如果有人能帮助我将永远感激,1 年 PHP 并没有真正切入芥末。
$.ajax({
url: 'countries.php',
dataType: 'json',
success: function(json) {
data = [];
for (i in json) {
data[i] = json[i];
}
// var data = JSON.parse(json);
console.log(data);
},
error: function(xhr, ajaxOptions, thrownError) {
alert(thrownError + "'r'n" + xhr.statusText + "'r'n" +
xhr.responseText);
}
});
jQuery('#vmap').vectorMap({
map: 'world_en',
backgroundColor: null,
color: '#ffffff',
hoverOpacity: 0.7,
selectedColor: '#666666',
enableZoom: true,
showTooltip: true,
scaleColors: ['#C8EEFF', '#006491'],
normalizeFunction: 'polynomial',
selectedRegions: [],
values: data_arr
,
onLabelShow: function (event, label, code) {
if(data[code] > 0)
label.append(': '+data[code]+' Attendees');
} });
国家.php页
header('Content-type: application/json');
$conn = new mysqli("localhost", "root", "", "wordpress2");
//$result = $conn->query("
$query = "SELECT * from countries";
//MySQL query
$json = array();
$result = $conn->query($query); //MySQL query is executed, and result stored in the variable $result
while($row = $result->fetch_assoc()){ //the result is an associate array, this array is assigned to $row variable
$json[] = $row['CNT_ISO'].'"'. ':'. '"' .$row['attendees'] ;
要生成一个对象,例如您手动创建的用于测试的对象,您可以创建一个stdClass()
对象,用所需的数据填充其属性,然后通过调用对象上的json_encode()
来返回该对象,它将自动转换为 JSON 字符串以传递回 javascript。
还可以通过仅从查询中返回实际想要的内容来提高查询效率。
在任何查询调用后添加一些状态检查也是一个好主意。
$conn = new mysqli("localhost", "root", "", "wordpress2");
$query = "SELECT CNT_ISO, attendees from countries";
$result = $conn->query($query);
if ( $result === FALSE ) {
echo $conn->error;
exit;
}
$countries = new stdClass() // create a new object
while($row = $result->fetch_assoc()){
$countries->{$row['CNT_ISO']} = $row['attendees'];
}
echo json_encode($countries);