javascript - 我在将 PHP 数组传递给 Javascript 时遇到问题

标签 javascript php arrays banner rotator

我正在使用 PHP 和 javascript 创建横幅功能。我的所有图像都位于 Images/banners 文件夹中,并由 PHP 动态添加,然后添加到 JavaScript 数组“adImages”中。该部分工作正常,因为当我查看源时,我可以在 JavaScript 中看到该数组。但是,图像并未放置在页面上。

这是我的代码,我缺少什么?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Rotating Banners</title>
    <?php
    $dir = 'Images/banner';
    $files = scandir($dir);
    array_shift($files);
    array_shift($files);
?>
<script language="Javascript" type="text/javascript">

    // Setting variables
    dir = Images/banner/
    adImages = <?php echo json_encode($files); ?>;
    thisAd = 0
    imgCt = adImages.length

    // Rotate function

    function rotate() {
if (document.images) {
thisAd++
if (thisAd == imgCt) {
thisAd = 0
}


document.adBanner.src=dir+adImages[thisAd]
setTimeout("rotate()", 1 * 1000)
}
}

</script>
</head>
<body onload="rotate()">
<center>
<img src="" name="adBanner" alt="Ad Banner" />
</center>
</body>
</html>

最佳答案

在将您的 dir var 设置为字符串后,似乎对我有用。使用 Chrome 开发者工具/控制台为您指出错误。以下代码对我来说适用于两个示例图像:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Rotating Banners</title>
    <?php
    $dir = 'Images/banner';
    $files = scandir($dir);
    array_shift($files);
    array_shift($files);
?>
<script language="Javascript" type="text/javascript">

    // Setting variables
    var dir = "Images/banner/",
        adImages = <?php echo json_encode($files); ?>,
        thisAd = 0,
        imgCt = adImages.length;

    // Rotate function

    function rotate() {
if (document.images) {
thisAd++
if (thisAd == imgCt) {
thisAd = 0
}


document.adBanner.src=dir+adImages[thisAd]
setTimeout("rotate()", 1 * 1000)
}
}

</script>
</head>
<body onload="rotate()">
<center>
<img src="" name="adBanner" alt="Ad Banner" />
</center>
</body>
</html>

关于javascript - 我在将 PHP 数组传递给 Javascript 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28921564/

相关文章:

javascript - work 函数如何返回另一个接受另一个参数的函数?

javascript - 我们如何在播放视频 10 分钟后让 div 可见

php - cakephp 1.3 save() 返回 true 但数据库中没有保存任何内容

python - 对矩阵中的多个数组连续执行高斯拟合并保存结果

java - 2个二维数组相乘的方法

javascript - Vee-validate 基本示例不起作用 - 错误未定义

javascript - 添加类来 react div onClick

php - 以 url 作为变量的 file_get_contents

php - 级联网格布局库

c++ - 为什么当 int array[n] 无效时 new int[n] 有效?