Concrete5使用Ajax加载区域

时间:2013-08-25 15:41:39

标签: php ajax concrete5

我试图用AJAX拉取页面区域。

在JS中我点击了我将href传递给PHP; 在PHP(位于工具中):

<?php  defined('C5_EXECUTE') or die("Access Denied.");
  $path = ($_POST['path']);
  $page = Page::getByPath($path);
  $a = new Area('Main');
  $ret = $a->display($page);
  echo json_encode($ret);
?>

如果我做:

echo json_encode($page);

我收到页面所以一切正常,但是当我尝试接收区域时,我收到此错误: 第5行的具体\ elements \ _clock_area_header_view.php

在这个文件中我发现了这个

$c = Page::getCurrentPage();
$areaStyle = $c->getAreaCustomStyleRule($a);

据我所知,$ c为null,为什么我有这个错误,我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:1)

这行代码:

$ret = $a->display($page);

......没有按照你的想法去做。 “显示”功能不返回内容 - 而是将其输出到浏览器。所以你的json_encode($ ret)只是编码并回显一个空变量。

要捕获显示的内容并将其放入变量,您可以使用php的输出缓冲功能,如下所示:

ob_start();
$a->display($page);
$ret = ob_end_clean();