Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 合并HTML页面(主页、关于、联系人),然后根据单击的链接显示它们(PHP?)?_Javascript_Php_Html - Fatal编程技术网

Javascript 合并HTML页面(主页、关于、联系人),然后根据单击的链接显示它们(PHP?)?

Javascript 合并HTML页面(主页、关于、联系人),然后根据单击的链接显示它们(PHP?)?,javascript,php,html,Javascript,Php,Html,对于最终用户来说,它看起来像是单独的页面(index.html、services.html等),但我不想在服务器上实际分离这些文档,而是想将它们组合成一个页面,并在单击相应的链接时使用(我假设)PHP将这些部分提供给它们自己的“页面” 为了简单起见,假设我有以下几页: 家 服务 接触 及其代码: 家 **主页内容** 服务 <body> <div id="content"> **Services page content** <div> </

对于最终用户来说,它看起来像是单独的页面(index.html、services.html等),但我不想在服务器上实际分离这些文档,而是想将它们组合成一个页面,并在单击相应的链接时使用(我假设)PHP将这些部分提供给它们自己的“页面”

为了简单起见,假设我有以下几页:

  • 服务
  • 接触
  • 及其代码:

    
    **主页内容**
    
    服务

    <body>
    <div id="content">
        **Services page content**
    <div>
    </body>
    
    
    **服务页面内容**
    
    接触

    <body>
    <div id="content">
        **Contact page content**
    <div>
    </body>
    
    
    **联系人页面内容**
    
    等等

    我是否可以使用以下标记将它们组合起来:

    <body>
    
    /*Home markup*/
    <?php Script to display this section when "Home" link is clicked; ?>
    <div id="content">
        **Home page content**
    </div>
    
    /*Services markup*/
    <?php Script to display this section when "Services" link is clicked; ?>
    <div id="content">
        **Services page content**
    </div>
    
    /*Contact*/
    <?php Script to display this section when "Contact" link is clicked ?>
    <div id="content">
        **Contact page content**
    </div>
    
    </body>
    
    
    /*主页标记*/
    **主页内容**
    /*服务标记*/
    **服务页面内容**
    /*接触*/
    **联系人页面内容**
    
    您应该看看模板系统,下面是我制作的一个非常简单的示例:

    function pageSelector(){
        if(array_key_exists('page', $_GET) && !empty($_GET['page'])){
            $page = $_GET['page'];
            pageSwitch($page);
        } else {
            $_GET['page'] = 'home';
            pageSelector();
        }
    }
    
    function pageSwitch($page){
        switch($page){
            case 'home':
                //load home page
            break;
            //add a case for every page you want.
        }
    }
    
    只需运行
    pageSelector()在您的索引上。
    您现在可以创建如下链接:

    index.php?page=home
    

    其中page=是您要访问的页面(请确保该页面存在于交换机中)

    您需要任何标识符才能访问该页面。可能像你的领域/家或你的领域/关于等

    您可以使用mod_rewrite将其转换为一个好的锁定ID

    .htaccess

    RewriteEngine On
    RewriteRule ^/?([a-zA-Z_-]+)$ index.php?p=$1 [L]
    
    然后,您可以使用切换功能切换到不同的位置

    function getPage(){
        if(isset($_GET['p'])){
            switch(strtolower($_GET['p'])){
                case 'index' : include(dirname(__FILE__) . '/../pages/index.php'); break;
                case 'aboutme' : include(dirname(__FILE__) . '/pages/about.php'); break;
                case 'legal' : include(dirname(__FILE__) . '/pages/legal.php'); break;
            }
        }
    }
    

    看看模板引擎。你应该做一些基础研究。首先查找术语“控制器”和php编程,这正是您要查找的。然后也考虑选择交付所有内容,所以只在客户端使用ECMA.UpDebug来构建@ @ ARKASCHA的评论。与另一个拥有10k声誉的用户不同,他总是询问别人的答案&表现得像他拥有SO一样。@arkascha我对web开发相当陌生,我对这个问题的初步研究证明是徒劳的,因为我甚至不知道如何提问,也不知道我到底在寻找什么,因此我来到这里。谢谢你的帮助!Javascript用于检测单击的链接,AJAX用于将该值发送到服务器,PHP用于响应小节,最后Javascript用于显示小节。非常感谢您的帮助!我会调查这件事的。当你陷入困境时,尽管问吧!你好。所以我很确定我已经正确地设置了脚本,但是我不确定你在索引上说“只运行pageSelector()”;是什么意思。确保这些函数包含在当前页面上,或者包含在当前页面上,或者包含写它们的文件,然后只需键入pageSelector();在该页面中,这些代码将起作用:)
    function getPage(){
        if(isset($_GET['p'])){
            switch(strtolower($_GET['p'])){
                case 'index' : include(dirname(__FILE__) . '/../pages/index.php'); break;
                case 'aboutme' : include(dirname(__FILE__) . '/pages/about.php'); break;
                case 'legal' : include(dirname(__FILE__) . '/pages/legal.php'); break;
            }
        }
    }