如何在kirby cms中访问javascript变量以获取“限制”功能

时间:2016-08-23 08:31:29

标签: javascript php kirby

就像在kirby的演示中一样

<?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>

建议我是否有人这样做过。

1 个答案:

答案 0 :(得分:0)

你不能,至少不是这样。

考虑代码执行的时间和地点。在浏览器甚至收到页面之前,PHP由服务器执行。页面加载完成后,浏览器会执行JavaScript。

您可以使用单独的脚本从您的号码生成所需内容,并通过AJAX请求将其作为GET或POST值传递给脚本,或者生成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();