【问题标题】:Put page content into templates' div on link request根据链接请求将页面内容放入模板的 div
【发布时间】:2014-07-11 03:46:43
【问题描述】:

假设我有网站 example.com,其索引页面类似于 header-main_div-footer。使用 ajax 我将链接内容加载到特定的 div 以及更改页面 URL。但是,重新加载页面只会显示包含页面的内容,没有页眉和页脚,它应该是。

我正在寻找的是当我手动访问 www.example.com/link/ 时,它会加载我的网站索引页面(或模板)并将请求页面的内容(位于 /link/)放入特定的 div。

至于现在,我有这个脚本:

$(function(){
$('a[rel="tab"]').click(function(e){
    e.preventDefault(); 

    pageurl = $(this).attr('href');

    $.ajax({url:pageurl+'?rel=tab',success: function(data){
        $('#content').html(data);
    }});

    if(pageurl!=window.location){
        window.history.pushState({path:pageurl},'',pageurl);    
    }
    return false;  
});
});

我不知道该怎么做:(

【问题讨论】:

    标签: javascript php jquery ajax


    【解决方案1】:

    此任务的通用名称是路由,您要寻找的答案取决于您使用的服务器。

    • 如果您在 Apache 上运行,那么您可以将一些重写指令添加到您的 .htaccess 文件中。看看 mod_rewrite 模块和许多谈论重新路由的地方,例如:Rerouting all php requests through index.php
    • 如果你在php的开发服务器上运行,那就更简单了!只需在启动时将您的路由器脚本传递给服务器:$ php -S localhost:8000 router.php 请参阅手册中this 页面上的示例 3。
    • 我没有尝试在 IIS 上进行路由,但我可能会从这里开始:How to Implement URL Routing with PHP + IIS?

    【讨论】:

    • D:我认为它只是 ajax
    • @lolbas 可能会涉及到一些 Ajax,尤其是因为您计划以这种方式加载页面内容。但是,服务器首先需要能够将您发送到该 Ajax,这将需要一些服务器端脚本。
    • 顺便说一句,有没有办法使用 ajax 来加载非请求页面?所以看起来我去 www.example.com/about/ 它也会从 www.example.com/index.php 加载页面
    • @lolbas 当然,但是,除非您打算对要加载的文件进行硬编码,否则您将需要访问用户请求的 url。因此,假设您将服务器设置为始终将您发送到 index.php。在那个 index.php 中,您可以将 $_SERVER["REQUEST_URI"] 回显到 Javascript 中,然后从那里解析它。您应该能够在 Javascript 中做出您想要的任何决定并正常发出 Ajax 请求。但是,我通常建议不要对整个页面使用 Ajax 调用,尤其是在页面相当大的情况下,因为您将为每个页面发出 2 个 HTTP 请求
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多