如何 运行 php 在 javascript timer/loop 中编码
How to run php code in javascript timer/loop
我用幻灯片制作了一个简单的页面,想在 JS 计时器循环时每 5 秒加载一次。
我添加了描述问题所在的注释。 PHP 仅在页面加载时扫描目录,不会在计时器中注意到文件夹中的更改。
代码如下:
<script type="text/javascript">
......
var main_timer = setInterval(function(){slideTimer()}, 5000);
......
function slideTimer() {
......
<?php
//This PHP code need to be looped inside the timer
$array = array();
$array = array_slice(scandir('strony'), 2);
$js_array = json_encode($array);
?>
........
pages = <?php echo $js_array; ?>;
........
........
}
</script>
在这里你必须了解服务器端脚本和客户端脚本的概念。
Java script 是一种客户端脚本语言。
PHP 是服务器端语言。
为了执行服务器端语言,您必须在服务器中执行代码,PHP 可以解释它。
在您的情况下,您试图在 javascript 中循环客户端脚本并在客户端脚本中添加 PHP 代码。
需要注意的是,当web服务器呈现整个页面时,PHP脚本已经执行,所以循环javascript中的PHP代码不会再次解释它因为客户端(您的浏览器)没有内置 PHP 解释器。
解决方案
来自 javascript 的计时器应该使用 AJAX
在服务器中调用一个方法,然后在您的服务器端 ajax 页面中,您必须包含
Ajax 来自 JQuery
的电话
function slideTimer() {
.......
.......
$.post('ajax.php', function(data){
pages = data
if(current_page < pages.length - 1) {
........
........
},'json');
}
文件ajax.php
<?php
// here NOT work
$array = array();
$array = array_slice(scandir('strony'), $_POST['page']);
$js_array = json_encode($array);
header('Content-Type: application/json');
echo $js_array;
?>
此处服务器脚本将回显 js_array
我用幻灯片制作了一个简单的页面,想在 JS 计时器循环时每 5 秒加载一次。
我添加了描述问题所在的注释。 PHP 仅在页面加载时扫描目录,不会在计时器中注意到文件夹中的更改。
代码如下:
<script type="text/javascript">
......
var main_timer = setInterval(function(){slideTimer()}, 5000);
......
function slideTimer() {
......
<?php
//This PHP code need to be looped inside the timer
$array = array();
$array = array_slice(scandir('strony'), 2);
$js_array = json_encode($array);
?>
........
pages = <?php echo $js_array; ?>;
........
........
}
</script>
在这里你必须了解服务器端脚本和客户端脚本的概念。
Java script 是一种客户端脚本语言。
PHP 是服务器端语言。
为了执行服务器端语言,您必须在服务器中执行代码,PHP 可以解释它。
在您的情况下,您试图在 javascript 中循环客户端脚本并在客户端脚本中添加 PHP 代码。
需要注意的是,当web服务器呈现整个页面时,PHP脚本已经执行,所以循环javascript中的PHP代码不会再次解释它因为客户端(您的浏览器)没有内置 PHP 解释器。
解决方案
来自 javascript 的计时器应该使用 AJAX
在服务器中调用一个方法,然后在您的服务器端 ajax 页面中,您必须包含
Ajax 来自 JQuery
的电话function slideTimer() {
.......
.......
$.post('ajax.php', function(data){
pages = data
if(current_page < pages.length - 1) {
........
........
},'json');
}
文件ajax.php
<?php
// here NOT work
$array = array();
$array = array_slice(scandir('strony'), $_POST['page']);
$js_array = json_encode($array);
header('Content-Type: application/json');
echo $js_array;
?>
此处服务器脚本将回显 js_array