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/