Как запустить PHP-код в таймере / цикле JavaScript

Я сделал простую страницу со слайдами и хотел загружать ее каждые 5 секунд, когда зацикливается таймер JS.

Я добавляю комментарии, которые описывают, где проблема. 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>

1

Решение

Здесь вы должны понять концепцию скрипты на стороне сервера а также скрипты на стороне клиента.

  • Сценарий Java это язык сценариев на стороне клиента.

  • PHP это язык на стороне сервера.

Чтобы выполнить Server Side Language, вы должны выполнить код на сервере, где PHP может его интерпретировать.

В вашем случае вы пытаетесь зациклить клиентский скрипт в javascript и добавить PHP-коды внутри клиентского скрипта.

Вы должны заметить, что когда веб-сервер представляет всю страницу, скрипт PHP уже был выполнен, поэтому зацикливание кодов PHP внутри javascript не будет интерпретировать его снова, поскольку клиент (ваш браузер) не имеет встроенного интерпретатора 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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]