0
我做了一个ajax函数,它在我的index.php中的ajax-container
div内调用我的html页面,所以现在我怎么做,如果我也想调用php页面在Ajax?用Ajax调用html和php页面
有我的代码:
htaccess的重写
Options +FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteRule ^([a-zA-Z0-9\-]*).html$ index.php?p=$1 [L]
的index.php
<div class="link" href="page2.html">go html</div>
<div class="link" href="page3.php">go php</div>
<div id="ajax-container">
<?php
$d = "pages/";
if (isset($_GET['p']))
\t {
\t $p = strtolower($_GET['p']);
\t if (preg_match("/^[a-z0-9\-]+$/", $p) && file_exists($d . $p . ".html"))
\t \t {
\t \t include $d . $p . ".html";
\t \t }
\t else
\t \t {
\t \t include $d . "404.html";
\t \t }
\t }
else
\t {
\t include $d . "home.html";
\t } ?>
</div>
这是我AJAX功能调用从文件夹中的网页HTML页/
var afficher = function(data, page) {
$('#ajax-container').fadeOut(100, function() {
$('#ajax-container').empty();
$('#ajax-container').append(data);
$('#ajax-container').fadeIn(100, function() {});
});
};
var lastRequest = null;
if (lastRequest !== null) {
lastRequest.abort();
}
var loadPage = function(page, storeHistory) {
if (typeof storeHistory === 'undefined') {
storeHistory = true;
}
lastRequest = $.ajax({
url: 'pages/' + page,
cache: false,
success: function(html) {
afficher(html, page);
if (storeHistory === true) {
history.pushState({
'key': 'value',
'url': page
}, '', page);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
afficher('erreur lors du chagement de la page');
}
});
return false;
};
window.addEventListener('load', function() {
setTimeout(function() {
window.addEventListener('popstate', function(e) {
if (e.state === null) {
loadPage('home.html');
} else {
loadPage(e['state']['url'], false);
}
});
}, 0);
});
$(document).ready(function() {
$('.link').bind('click', function(e) {
e.preventDefault();
var page = $(this).attr('href');
loadPage(page);
return false;
});
});
谢谢你的工作,但我怎样才能使用它为我的popstate功能? – Tiaw
把它放在'loadPage('home.html');'在你的代码中应该可以工作。那就是如果我明白你的问题:P。不要忘了提出答案,并将其标记为答案,如果这样做的话:D @Tiaw –