我有index.php:
这些php行
$sql = "SELECT * FROM voedingsmiddelen";
$result = mysqli_query($conn, $sql);
在同一页面上我有这个代码,从表中提取数据并将其放入数组中。
var array = <?php echo json_encode( mysqli_fetch_all( $result, MYSQLI_ASSOC ) ) ?>;
var arraytype = typeof array;
alert('type: '+arraytype);
var i=0;
for(key in array) {
alert('for loop working');
if(data.hasOwnProperty(key)) {
var value = data[key];
alert(value);
} else {
alert('has no property');
}
}
我只收到一条提示'type:object'的警告。所以“gettype”正在发挥作用。但其他警报未显示。我做错了什么?
答案 0 :(得分:0)
首先请检查数组是否为空。删除php代码并放入原始数组时:
var array = ["a", "a"];
代码似乎正在运行,至少显示第二个警报。但是,data[key]
未定义。应该是array[key]
?
答案 1 :(得分:0)
hasOwnProperty
返回一个布尔值,指示您调用它的对象是否具有名为here的属性。所以试试这个
for (var i=0; i<array.length; i++) {
alert('for loop working');
if(array.hasOwnProperty(i)) {
var value = i;
alert(value);
} else {
alert('has no property');
}
}
或者在你的情况下:
var i=0;
for(key in array) {
alert('for loop working');
if(array.hasOwnProperty(key)) {
var value = key;
alert(value);
} else {
alert('has no property');
}
}