我在每个页面的右下方显示一个非常恼人和神秘的“1”,我假设在下面的ajax请求和php代码中出现了错误。标记为php加载程序的部分是该名称的单独页面。 html只是带有哈希标签的li和rel =“ajax”
$(document).ready(function () {
//Check if url hash value exists (for bookmark)
$.history.init(pageload);
//highlight the selected link
$('a[href=' + document.location.hash + ']').addClass('selected');
//Search for link with REL set to ajax
$('a[rel=ajax]').click(function () {
//grab the full url
var hash = this.href;
//remove the # value
hash = hash.replace(/^.*#/, '');
//for back button
$.history.load(hash);
//clear the selected class and add the class class to the selected link
$('a[rel=ajax]').removeClass('selected');
$(this).addClass('selected');
//hide the content and show the progress bar
//$('#content').hide();
$('#loading').show();
//run the ajax
getPage();
//cancel the anchor tag behaviour
return false;
});
});
function pageload(hash) {
//if hash value exists, run the ajax
if (hash) getPage();
}
function getPage() {
//generate the parameter for the php script
var data = 'page=' + encodeURIComponent(document.location.hash);
$.ajax({
url: "loader.php",
type: "GET",
data: data,
cache: false,
success: function (html) {
//hide the progress bar
$('#loading').hide();
//add the content retrieved from ajax and put it in the #content div
$('#content').html(html);
//display the body with fadeIn transition
$('#content').fadeIn('fast');
SyntaxHighlighter.highlight();
}
});
}
</script>
<?
/*php page loader*/
switch($_GET['page']) {
case '#code' : $page = include ($_SERVER['DOCUMENT_ROOT'].'/mysite/code.php'); break;
case '#design' : $page = include ($_SERVER['DOCUMENT_ROOT'].'/mysite/design.php'); break;
case '#illustration' : $page = include ($_SERVER['DOCUMENT_ROOT'].'/mysite/illustration.php'); break;
case '#writing' : $page = include ($_SERVER['DOCUMENT_ROOT'].'/mysite/writing.php'); break;
case '#links' : $page = include ($_SERVER['DOCUMENT_ROOT'].'/mysite/links.php'); break;
case '#about' : $page = include ($_SERVER['DOCUMENT_ROOT'].'/mysite/about.php'); break;
}
echo $page;
/*deep linking*/
if( isset( $_SERVER['HTTP_X_REQUESTED_WITH'] ) && ( $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' ) )
{
} else {
header("Location: /mysite/#/index");
}
?>
答案 0 :(得分:8)
这里的回声是原因。 include
在成功/失败时返回布尔值TRUE/FALSE
。您将其分配给$page
然后回显$page
:
switch($_GET['page']) {
case '#code' : $page = include ($_SERVER['DOCUMENT_ROOT'].'/mysite/code.php'); break;
case '#design' : $page = include ($_SERVER['DOCUMENT_ROOT'].'/mysite/design.php'); break;
case '#illustration' : $page = include ($_SERVER['DOCUMENT_ROOT'].'/mysite/illustration.php'); break;
case '#writing' : $page = include ($_SERVER['DOCUMENT_ROOT'].'/mysite/writing.php'); break;
case '#links' : $page = include ($_SERVER['DOCUMENT_ROOT'].'/mysite/links.php'); break;
case '#about' : $page = include ($_SERVER['DOCUMENT_ROOT'].'/mysite/about.php'); break;
}
// $page is 0 or 1 based on successfully including a file...
// Boolean TRUE will cast to 1 when printed
// FALSE won't print anything...
echo $page;