0

我有一个包含 HTML 内容的 PHP 页面。现在我在 HTML 之间运行一些 PHP 代码,我得到了一些结果。事实是,当我尝试通过 AJAX 从该页面获得响应时,它会向我显示整个页面内容以及我正在寻找的结果。我能做些什么来防止页面写入额外的内容。我知道每当在页面上打印某些内容时,它都会响应 AJAX 调用,但我想要一种方法来解决这个问题。

我的页面文件(名称:page.php):

<?php echo $Content->GetData('HEADER'); ?>
    <div id="Content">
      <div id="Page">
        <?php if($Content->GetData('PAGE','IS_TRUE')) : ?>
        <?php if(NULL !== $Content->GetData('PAGE','TITLE')) : ?>
        <?php echo $Content->GetPlugins("Page:" . $Content->GetData('PAGE','ID') . ",BeforeTitle"); ?>
        <div id="Title" dir="rtl">
          <a href="<?php echo $Content->GetInfo('ABS_ROOT') . "page/" . $Content->GetData('PAGE','NAME'); ?>"><?php echo $Content->GetData('PAGE','TITLE'); ?></a>
        </div>
        <?php echo $Content->GetPlugins("Page:" . $Content->GetData('PAGE','ID') . ",AfterTitle"); ?>
        <?php endif; ?>
        <div id="Content" dir="rtl">
          <div style="float: right; width: 966px; padding: 6px">
            <?php echo $Content->GetPlugins("Page:" . $Content->GetData('PAGE','ID') . ",BeforeContent"); ?>
            <?php echo $Content->GetData('PAGE','CONTENT'); ?>
            <?php echo $Content->GetPlugins("Page:" . $Content->GetData('PAGE','ID') . ",AfterContent"); ?>
          </div>
        </div>
        <?php else : ?>
        <div id="Content" dir="rtl">
          <div style="float: right; width: 966px; padding: 6px">
             There is no page like this in our archives.
          </div>
        </div>
        <?php endif; ?>
      </div>
    </div>
<?php echo $Content->GetData('FOOTER'); ?>

如果我像这样在浏览器中写一个地址,localhost/cload/blog?action=rate它将通过我的重定向列表并显示blog加载插件的 page.php。问题是我想blog通过这个地址通过 AJAX 调用我的插件,但它会首先呈现页面数据。

抱歉,如果这很混乱。

4

2 回答 2

1

我建议修改page.php为一些函数,主要是数据处理函数,然后是输出函数。然后,当您加载页面时,检查它是否是 AJAX 请求,如果是,则将您想要的数据回显为 JSON,否则使用输出函数呈现页面。

或者,您可以创建第二个单独的页面,但这可能比单个文件更难维护。

于 2012-09-05T17:31:44.897 回答
0

是的,您应该检查您的请求是否是 ajax 请求,如果是,您应该更改响应以仅返回任何想要的结果。

这个 php 代码将对此给出一个粗略的想法。

if($request->isXmlHttpRequest()){
  return new Response(json_encode($data_array));
}

希望这会有所帮助。

于 2012-09-12T07:44:49.717 回答