我正在寻找一种方法来使用jQuery和脚本index.php,它是使用模板引擎逐位构建的,如下所示:
<?php
global $template;
page_header(); // Calls and displays header.html
$template->load('body', 'index.html'); // Loads index.html and calls it 'body'
*Code that assigns values to variables in index.html*
$template->display('body'); // Displays index.html
page_footer(); // Calls and displays footer.html
?>
其中每一行都是注释的。
我想使用jQuery构建一个自动恢复index.php的函数,但只有'body'部分。我找不到任何关于这样做的文档,但我查看了以下代码:
function update() {
$("#notice_div").html('Loading..');
$.ajax({
type: 'GET',
url: 'index.php',
timeout: 2000,
success: function(data) {
$("#current_game").html(data);
$("#notice_div").html('');
window.setTimeout(update, 10000);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#notice_div").html('Timeout contacting server..');
window.setTimeout(update, 60000);
}
});
};
但是当它在标题中时它变得非常混乱,因为它调用整个index.php页面嵌套标题,所以我们在标题中有一个标题。有什么建议吗?
答案 0 :(得分:0)
最简单的解决方案是发送一个get变量;
function update() {
$("#notice_div").html('Loading..');
$.ajax({
type: 'GET',
url: 'index.php',
data: 'ajax=true',
...
}
并在您的php文件中执行以下操作:
if($_GET['ajax'] == 'true') {
// don't print header, but other stuff
} else {
// print header
}
如果您使用的是框架,它可能会有一些智能功能来自动确定它是xhttp请求还是普通请求。通常通过扩展标题来完成