将数组从php存储到javascript
我已经在phpmyadmin上完成了一个拼写表,我试图通过ajax请求访问它,并将其完全存储在javascript数组中 加载\u hero\u spell.php:将数组从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
<?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;