将数组从php存储到javascript

将数组从php存储到javascript,javascript,php,jquery,ajax,pdo,Javascript,Php,Jquery,Ajax,Pdo,我已经在phpmyadmin上完成了一个拼写表,我试图通过ajax请求访问它,并将其完全存储在javascript数组中 加载\u hero\u spell.php: <?php include("../php/connect_database.php"); $sth = $bdd->query("SELECT * FROM spells_hero LIMIT 4"); $result = $sth->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH

我已经在phpmyadmin上完成了一个拼写表,我试图通过ajax请求访问它,并将其完全存储在javascript数组中

加载\u hero\u spell.php:

<?php
include("../php/connect_database.php");

$sth = $bdd->query("SELECT * FROM spells_hero LIMIT 4");
$result = $sth->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC);
$php_array = array();

foreach($result as $row)
{
    echo json_encode($result);
}  
?>
Alertdata显示如下内容:

Array
(
[0] => Array
    (
        [nick] => Spell 1
        [description] => Description 1
        [icon_dir] => ../../images/icons/spells/AbolishMagic.png
        [ownerID] => 1
    )

[1] => Array
    (
        [nick] => Spell 2
        [description] => description 2
        [icon_dir] => ../../images/icons/spells/AbominationExplosion.png
        [ownerID] => 1
    )
)
但它会提醒你的阵法;显示未定义

我希望能够将这些值传递给一个对象,这样我就可以像

$(".Spell_icon").attr("src", Hero[1].spell[3].description);

在php文件中添加此行,而不是在print\r$php\u array;中添加此行

  $someJSON = json_encode($php_array);
  echo $someJSON;

您将获得一个javascript格式的JSON。

我们的数组之所以看起来像JSON,是因为您使用了print\r$php\u数组;在php脚本中。这种格式是javascript simple无法理解的。我的建议是使用json_encode$php_数组。这样,您的数组将转换为JSON,javascript可以理解。

您是否使用JSON从Ajax调用发送数据?替换print\r$php\u数组;使用echo json_encode$php_数组;尽管您可以简单地回显json_encode$result;因为这已经是一个数组了。你的foreach循环实际上是一种浪费精力的行为。你把警报放在哪里?因为它被定义为var拼写_array=[],它不应该返回未定义的。@escapeVelocity,但是拼写数组[1]应该是。@George,我的错!我刚看到索引1!之后,不要忘记将接收到的JSON解析为前端的普通JS数组。您可以使用JSON.parsedata。
  $someJSON = json_encode($php_array);
  echo $someJSON;