使用 PHP 动态生成 JavaScript
Dynamically generate JavaScript using PHP
我有这个 JavaScript 运行良好的代码:
var lookup = {
"dog-black":{url:'images/dog-black.jpg'},
"dog-white":{url:'images/dog-white.jpg'},
"cat-black":{url:'images/cat-black.jpg'},
"cat-white":{url:'images/cat-white.jpg'}
};
我正在尝试使用 PHP 动态生成相同的代码,以使行与数据库中的行一样多,如下所示:
var lookup = {
<?php
$sql = "SELECT name FROM swords ORDER BY animals, colors";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo '"'.$row['name'].'":{url:images/'.$row['name'].'.jpg';
}
} else {echo "No records";}
?>
};
我尝试使用引号或 heredoc 将 php 代码定义为字符串并提醒字符串变量,但似乎脚本没有执行
注意:在这部分代码之前我已经连接到数据库并向其传递数据from/to。
while循环中的echo
好像有错误。您没有正确关闭字符串,它缺少结束部分 },
。应该看起来像这样:
echo '"'.$row['name'].'":{url:"images/'.$row['name'].'.jpg"},';
不要尝试手动回应。您可以做的是在 PHP 中构建相同的结构,然后使用 json_encode
.
JSON 实际上是有效的 JavaScript 代码,所以它会起作用。
这样试试:
<?php
$lookup = array();
$sql = "SELECT name FROM swords ORDER BY animals, colors";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$lookup[$row['name']] = array('url' => 'images/'.$row['name'].'.jpg');
}
}
else {
//echo "No records";
}
?>
var lookup = <?=json_encode($lookup); ?>;
我有这个 JavaScript 运行良好的代码:
var lookup = {
"dog-black":{url:'images/dog-black.jpg'},
"dog-white":{url:'images/dog-white.jpg'},
"cat-black":{url:'images/cat-black.jpg'},
"cat-white":{url:'images/cat-white.jpg'}
};
我正在尝试使用 PHP 动态生成相同的代码,以使行与数据库中的行一样多,如下所示:
var lookup = {
<?php
$sql = "SELECT name FROM swords ORDER BY animals, colors";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo '"'.$row['name'].'":{url:images/'.$row['name'].'.jpg';
}
} else {echo "No records";}
?>
};
我尝试使用引号或 heredoc 将 php 代码定义为字符串并提醒字符串变量,但似乎脚本没有执行
注意:在这部分代码之前我已经连接到数据库并向其传递数据from/to。
while循环中的echo
好像有错误。您没有正确关闭字符串,它缺少结束部分 },
。应该看起来像这样:
echo '"'.$row['name'].'":{url:"images/'.$row['name'].'.jpg"},';
不要尝试手动回应。您可以做的是在 PHP 中构建相同的结构,然后使用 json_encode
.
JSON 实际上是有效的 JavaScript 代码,所以它会起作用。
这样试试:
<?php
$lookup = array();
$sql = "SELECT name FROM swords ORDER BY animals, colors";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$lookup[$row['name']] = array('url' => 'images/'.$row['name'].'.jpg');
}
}
else {
//echo "No records";
}
?>
var lookup = <?=json_encode($lookup); ?>;