因此,对于我的下一个网站,我想使用AJAX和PHP,因为它不需要重新加载页面。它没有按预期工作,经过一些互联网搜索,我转向StackOverflow。
我有以下JS功能:
$(function() {
$('#page-wrap #cssmenu a').click(function() {
var $linkClicked = $(this).attr('href');
document.location.hash = $linkClicked;
var $pageRoot = $linkClicked.replace('#page', '');
if (!$(this).hasClass("active")) {
$("#page-wrap #cssmenu a").removeClass("active");
$(this).addClass("active");
$.ajax({
type: "POST",
url: "load.php",
data: 'page='+$pageRoot,
dataType: "html",
success: function(msg){
if(parseInt(msg)!=0)
{
$('#main-content').slideUp().slideDown().html(msg);
$('#main-content section');
}
}
});
}
else {
event.preventDefault();
}
});
var hash = window.location.hash;
hash = hash.replace(/^#/, '');
switch (hash) {
case 'page2' :
$("#" + hash + "-link").trigger("click");
break;
case 'page3' :
$("#" + hash + "-link").trigger("click");
break;
case 'page4' :
$("#" + hash + "-link").trigger("click");
break;
}
});
该函数加载此PHP文件:
<?php
if(!$_POST['page']) die("0");
$page = (int)$_POST['page'];
if(file_exists('pages/page'.$page.'.php'))
echo file_get_contents('pages/page'.$page.'.php');
else echo 'There is no such page!';
?>
在这种情况下,我想加载员工页面。由于它从数据库中获取了所有人员,因此它使用了大量的PHP,以下行来自文件:
$rank = '10';
$query = $db->conn->prepare('SELECT * FROM ht_users WHERE rank = ? OR rank2 = ?');
$query->bind_param('ss', $rank, $rank);
$query->execute();
$result = $query->get_result();
$count = $result->num_rows;
$base = 1;
while($row = $result->fetch_assoc())
{
$direction = 'direction=3&';
if($base == 1) $direction = '';
if($base == $count) $direction = 'direction=4&';
$content = '<div class="med">
<b class="eigenaar"><center>' . $row['naam'] . '</center></b>
<img src="imager?hb=img&user=' . $row['naam'] . '&' . $direction . 'head_direction=3&action=sit,wav&gesture=sml&size=l" />
<div style="margin-right:275px;"></div>
</div>
';
echo $content;
$base ++;
}
但是当我运行页面时,它并没有解析代码,但它只是回应它。
我的问题是如何解决这个问题?
答案 0 :(得分:2)
您可以做的不是file_get_contents()
,而是include
这应该照顾您的问题
if(file_exists('pages/page'.$page.'.php'))
{
include 'pages/page' . $page . '.php';
} else {
echo 'There is no such page!';
}
如果您想将内容解析为变量,那么您可以查看ob_start()
ob_start( );
include 'pages/page' . $page . '.php';
$html = ob_get_clean( );