将数组从 PHP 传递到 Javascript
Passing an Array from PHP to Javascript
我正在尝试传递 PHP 数组,然后在 JavaScript 中使用该数组。
我使用的PHP代码如下:
<?php
$link = mysqli_connect("localhost", "root", "password", "database");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT * FROM Employees";
if ($result = mysqli_query($link, $query)) {
/* fetch associative array */
while ($row = mysqli_fetch_assoc($result)) {
$data[] = $row;
}
print_r($row);
/* free result set */
mysqli_free_result($result);
}
/* close connection */
mysqli_close($link);
//convert the PHP array into JSON format, so it works with javascript
$json_array = json_encode($data);
?>
JavaScript:
<script>
var array = <?php echo $data; ?>;
console.log(array);
</script>
PHP 中的 data array
似乎没有传递给 Javascript var array
。在 firebug 上查看控制台时,会显示以下错误消息:
Notice - Array to string conversion.
对于出现此错误的原因,如果能提供任何帮助,我将不胜感激。
可能是因为您正在回显数组而不是 json 编码字符串。
使用这个
<script> var array = <?php echo $json_array; ?>;
console.log(array); </script>
我认为应该是:
<script> var array = <?php echo $json_array; ?>;
console.log(array); </script>
您在 $data 中使用了 json_encode 但您没有在代码中使用该变量。会不会是这样?
我正在尝试传递 PHP 数组,然后在 JavaScript 中使用该数组。
我使用的PHP代码如下:
<?php
$link = mysqli_connect("localhost", "root", "password", "database");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT * FROM Employees";
if ($result = mysqli_query($link, $query)) {
/* fetch associative array */
while ($row = mysqli_fetch_assoc($result)) {
$data[] = $row;
}
print_r($row);
/* free result set */
mysqli_free_result($result);
}
/* close connection */
mysqli_close($link);
//convert the PHP array into JSON format, so it works with javascript
$json_array = json_encode($data);
?>
JavaScript:
<script>
var array = <?php echo $data; ?>;
console.log(array);
</script>
PHP 中的 data array
似乎没有传递给 Javascript var array
。在 firebug 上查看控制台时,会显示以下错误消息:
Notice - Array to string conversion.
对于出现此错误的原因,如果能提供任何帮助,我将不胜感激。
可能是因为您正在回显数组而不是 json 编码字符串。
使用这个
<script> var array = <?php echo $json_array; ?>;
console.log(array); </script>
我认为应该是:
<script> var array = <?php echo $json_array; ?>;
console.log(array); </script>
您在 $data 中使用了 json_encode 但您没有在代码中使用该变量。会不会是这样?