使用setvalue运行循环
using setvalue to run a loop
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);
你不能像那样混合PHP和Javascript。PHP首先运行,生成一些数据供Javascript解释。从Javascript的角度来看,它只能看到:
<script type="text/javascript">
setInterval(function()
{
document.getElementById('testimonial').innerHTML = "some data";
}, 3000);
</script>
您需要将所有数据传递给Javascript,以便它可以对其进行迭代
关于如何混合PHP和Javascript,请参阅以下答案。
我编写了这段代码,它正在运行。正如上面的人告诉您的,服务器端不能使用客户端迭代或setIntervals,所以您应该提前发送整个数据。
示例:
$array = array();
$array[0]['text'] = 'hi';
$array[1]['text'] = 'hey';
$array[2]['text'] = 'hou';
$js_array = json_encode($array);
?>
<p id="testimonial"><?php echo $array[0]['text'] ?></p>
<script>
var json;
var i=1;
json = <?php echo $js_array; ?>
setInterval(function()
{
document.getElementById('testimonial').innerHTML = json[i]['text'];
i++;
}, 3000);
console.log(json);
</script>
相关文章:
- Bxslider预加载程序在没有图像的情况下以无限循环运行
- 有没有任何方法可以使这个名称生成循环运行最短的秒数
- 对于循环运行一次或在函数完成之前运行一次
- 希望Javascript无限循环运行
- 每次 while 循环运行时调用 javascript,以从数据库中给出一个唯一的时间
- Javascript循环运行异常
- KineticJS afterFrame没有't循环运行
- 循环运行顺序错误的Javascript
- 不明白为什么循环运行两次
- Javascript:.In循环运行的次数多于预期
- 通过For循环运行Javascript数组
- 基于PHP的循环运行javascript
- 从for循环返回,但保持循环运行
- 当我通过循环运行返回的元素集合时,JavaScript正在复制文档get方法返回的元素
- 为什么我的循环运行两次
- 每次while循环运行时调用javascript,给出一个唯一的波形
- 对于循环运行一次,2/3的方式(javascript)
- setInterval即使在javascript的clearInterval之后也会为一些循环运行
- 是否可以将for循环运行到.然后使用Protractor
- 如何强制Angular 1.x Digest循环运行3次