【问题标题】:Converting array from php query to usable javascript format将数组从 php 查询转换为可用的 javascript 格式
【发布时间】:2016-11-06 11:46:00
【问题描述】:

如何获取我从查询中获得的 php 数组并使其看起来像这样:

["14-11-2016","15-11-2016"]

我试过这样做:

$result=$connection->query("select day from blockades");
while($row=mysqli_fetch_assoc($result)){
echo json_encode($row['day']);
echo ",";
}

它给了我:

"1-11-2016","2-11-2016","3-11-2016","4-11-2016",

但是当我尝试将其放入 javascript 数组中时

var Array=<?php 
    while($row=mysqli_fetch_assoc($result)){
    echo json_encode($row['day']);
} 
?>
console.log(Array)

这显然行不通。控制台记录以下内容:

function Array() { [native code] }
jquery-ui.js:9244 Uncaught TypeError: Cannot read property 'prototype' of undefined(…)

由于 console.log 没有给出任何信息,我不知道它是否会向该 js 数组写入任何内容,有人可以帮忙吗?

【问题讨论】:

  • Array 是 Javascript 中的全局对象。此外,对于格式良好的 js 数组,您还缺少 [ ]
  • 并且不要手动构建阵列。在 PHP 中构建所需的数组并立即对整个事物进行编码 $arr=array(); while($row = mysqli_fetch_assoc($result)) $arr[]=$row['day']; echo json_encode($arr);

标签: javascript php arrays


【解决方案1】:

问题是您正在对每个单独的项目进行编码,但您需要对整个项目列表进行编码。

<?php
// Create array to hold all items.
$days = array();
$result = $connection->query("select day from blockades");
// Add the days to the array.
while($row = mysqli_fetch_assoc($result)){
    $days[] = ($row['day']);
}

// Output the JavaScript variable:
?>
<script type="text/javascript">
var Days=<?php echo json_encode($days) ?>;
console.log(Days);
</script>

【讨论】:

    【解决方案2】:

    看看你的错误

    Uncaught TypeError: Cannot read property 'prototype' of undefined

    看来你修改了Array的原型,可能是因为使用了

    var Array=<?p
    

    您需要使用array 或任何其他变量,例如arr

    var arr=<?p
    

    然后

    console.log(arr);
    

    【讨论】:

    • 现在错误变成了“未定义”,这是否意味着我的arr是空的?
    • @Bonana 可以,请在您的开发人员工具中检查此 php 代码的输出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    相关资源
    最近更新 更多