我有一个包含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。问题是我想通过这个地址通过AJAX调用我的blog
插件,但它会首先呈现页面数据。
对不起,如果这很乱。
答案 0 :(得分:1)
我建议将page.php
修改为一些函数,主要是数据处理函数,然后是输出函数。然后,当您加载页面时,放置check in for whether it's an AJAX request,如果是,则将您想要的数据作为JSON回显,否则使用输出函数渲染页面。
或者,您可以创建第二个单独的页面,但这可能比单个文件更难维护。
答案 1 :(得分:0)
是的,您应该检查您的请求是否是ajax请求,如果是,那么您应该更改您的响应以仅返回任何想要的结果。
这个PHP代码会给出一个粗略的想法。
if($request->isXmlHttpRequest()){
return new Response(json_encode($data_array));
}
希望这会有所帮助。