javascript - 使用AJAX切换页面,页面大量使用PHP

标签 javascript php ajax

因此,对于我的下一个站点,我想使用 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 ++;
}   

但是当我运行该页面时,它不解析代码,而只是回显它。

我的问题是如何解决这个问题?

最佳答案

你可以做的不是 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( );

关于javascript - 使用AJAX切换页面,页面大量使用PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27000017/

相关文章:

javascript - 如何添加 Croppie 结果上传 php 并将结果传递到其他 php 页面

javascript - 从另一个页面纯JS获取元素的innerHTML

javascript - 在 laravel 和 vue 中使用 axios 上传文件和输入数据

php - Mysql: 'order by Rand() Limit 4 ' 还是不是?

php - 搜索多个数组值并统计搜索结果

php - 使用 AJAX 和 PHP 上传文件出现未知错误(BIF jQuery 插件)

javascript - 将 JSON 对象加载到数据表 Jquery 中的问题

javascript - 是否可以将 domain.ext、sub1.domain.ext 和 sub2.domain.ext 的 cookie 相互隔离?

javascript - NPM 注册表安装在非注册表依赖项上失败

php - 为准备好的语句设置一个额外的列值