Прямо как в демоверсии Кирби
<?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>
предложи мне, если кто-нибудь сделал это.
Вы не можете, по крайней мере, не таким образом.
Подумайте, когда и где исполняется ваш код. 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();
Других решений пока нет …