我正在为我的学校开发一个窄播系统,目前正在使用JavaScript在主显示页面上的iFrame的URL之间进行轮换。
我希望能够通过PHP后端更改这些值。但是我不知道如何将2行(module_url和module_time)放入数组并将其回显到JS。
浏览stackoverflow时,我尝试了多种代码,这种方法有点用,除了它会抛出URL之类的:“ var arrayObjects = ["https:\/\/domain.eu\/dir\/page.php","https:\/\/domain.eu\/dir\/page.php"]
”。
(我希望数组显示:“ var arrayObjects = ["https:\/\/domain.eu\/dir\/page.php", 20]
”。其中URL代表新的iFrame源,而20代表页面显示时间。)
所以我的主要问题是,如何使2行适合1个数组,以及如何确保该数组将显示正确的链接以及模块时间。
<?php
$mysqli = new mysqli('localhost', 'user', 'pw', 'db');
if ($stmt = $mysqli->prepare("SELECT module_url FROM db")) {
$stmt->bind_result($name);
$OK = $stmt->execute();
}
//put all of the resulting names into a PHP array
$result_array = Array();
while($stmt->fetch()) {
$result_array[] = $name;
}
//convert the PHP array into JSON format, so it works with javascript
$json_array = json_encode($result_array);
?>
<script>
//now put it into the javascript
var arrayObjects = <?php echo $json_array; ?>
ALL OTHER JS CODE
</script>
编辑:module_time目前未添加到MySQLi查询中。
答案 0 :(得分:0)
首先,您的PHP数组应该是多维度的,例如:
$result_array[] = array($name, <time here>);
然后,由于您已经使用json_encode并将其分配给JS数组,因此它确实已经是Javascript中的数组,也就是说,您已经可以访问以下元素:
arrayObjects[0][0]; <---- first element URL
arrayObjects[0][1]; <---- first element time
将JavaScript数组打印为HTML将以文本形式显示,例如:
http://www.google.com,20,http://www.google.com,30
通过示例,您可以使用JSON.stringify()打印实际的Javascript数组而不是文本,
var array = JSON.stringify(<?php echo $json_array; ?>);
document.write(array);
将输出:
[["http://www.google.com",20],["http://www.google.com",30]]