javascript - 使用 setvalue 运行循环

标签 javascript php html setvalue

HTML:

<section class="clientbox">
    <div class="container">
        <div class="col-lg-10 col-lg-offset-1">
            <h2>WHAT CLIENT SAYS</h2>
            <h4>POSITIVE REVIEWS FOR LOVING PROBLAM.COM </h4>
            <p id="testimonial"><?php echo $alldata[0]['text'] ?></p>
         </div>
    </div>    
</section>

javascript:

<script type="text/javascript">
<?php $i = 1; ?>
    setInterval(function()
        {
            document.getElementById('testimonial').innerHTML = "<?php echo $alldata[$i]['text'] ?>";
            <?php $i++; ?>
        }, 3000);

实际上我想做的是每 3 秒更改 $alldata 数组中存储的值中的“推荐”文本。

问题是 php 变量 $i 没有更新。它仅保留 1。

最佳答案

您将服务器端逻辑 (PHP) 与客户端逻辑 (JavaScript) 混合在一起。

当客户端请求您的网页时,PHP 渲染包含 HTML、CSS、JavaScript 和其他一些内容的内容,然后 Web 服务器将这些内容发送到客户端。

Web浏览器接收这些内容,然后执行JavaScript并根据样式渲染HTML。

您需要在服务器端生成 JavaScript setInterval 所需的所有内容,并调整 JavaScript 逻辑以迭代这些数据。

逻辑可能如下所示。我对 PHP 不熟悉,不确定这是否有效。 JavaScript 不会检查所有数据是否已被消耗。

<script type="text/javascript">
    <?php
    function get_data($e) {
        return($e['text']);
    }
    $data = array_map("get_data", $alldata);
    ?>
    var js_alldata = <?php echo json_encode($data) ?>;
    var i = 1;
    setInterval(function()
        {
            document.getElementById('testimonial').innerHTML = js_alldata[i % js_alldata.length];
            i++;
        }, 3000);

关于javascript - 使用 setvalue 运行循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31626715/

相关文章:

php - 使用多个值的内连接查询

php - 没有 php artisan 护照的护照 : install on deploying server

html - CSS 标题图像 div

Javascript 替换删除 HTML

javascript - 是否可以将 JS 函数导入 js.erb 文件?

php - 在php和jquery中显示隐藏扩展的动态层次树结构

javascript - Span 元素不运行来自 jQuery 的动画

php - CodeIgniter 从 Max 获取值(value)

javascript - @font-face 套件预加载器

javascript - 如何将用户输入写入另一个文件? HTML、PHP、JavaScript