1

我正在尝试使用 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);

我收到了页面,所以一切正常,但是当我尝试接收一个区域时,我收到了这个错误:concrete\elements\block_area_header_view.php 在第 5 行

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

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

所以据我了解 $c 是 null 为什么我有这个错误我该如何解决这个问题?

4

1 回答 1

1

这行代码:

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

...不做你认为它做的事。“显示”函数不返回内容——而是将其输出到浏览器。所以你的 json_encode($ret) 只是编码和回显一个空变量。

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

ob_start();
$a->display($page);
$ret = ob_end_clean();
于 2013-08-29T18:35:36.583 回答