Как я могу получить доступ к переменной javascript в kirby cms для «ограничения» функциональности

Прямо как в демоверсии Кирби

<?php foreach(page('projects')->children()->visible()->limit(3) as $project): ?>

Я хочу сделать динамический лимит записей.
Как я могу это сделать?

Я пробовал JavaScript, но он не работал.

Вот код JavaScript, который не работал

<script>
var p1 = 3;
function load()
{
p1=p1+3;
}
</script>

<?php
$number="<script>document.write(p1)</script>";
// echo $number;
<?php foreach(page('projects')->children()->visible()->limit($number) as $project): ?>
//Code Here
<?php endforeach ?>

<div class="text-center"><a href="#" class="load-more" onClick="load();">LOAD MORE</a></div>

предложи мне, если кто-нибудь сделал это.

0

Решение

Вы не можете, по крайней мере, не таким образом.

Подумайте, когда и где исполняется ваш код. PHP выполняется сервером, прежде чем браузер даже получит страницу. JavaScript выполняется браузером после загрузки страницы.

У вас может быть отдельный скрипт, который генерирует то, что вам нужно из вашего числа, и передавать его в виде значения GET или POST скрипту через запрос AJAX, или генерировать нужное вам число в PHP.

Так что в случае запроса AJAX ваш PHP-скрипт будет делать что-то вроде:

<?php
$number = $_GET['number'];
foreach (page('projects')->children()->visible()->limit($number) as $project) {
echo .....
}
?>

и ваш JavaScript будет вызывать этот скрипт через AJAX-запрос и помещать полученный HTML-код на вашу страницу, например:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
document.getElementById("container").innerHTML = xht.responseText;
}
xhr.open("GET", "script.php?number=" + p1, true);
xhr.send();
0

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

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

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