【问题标题】:How to load an html snippet into page without changing pages如何在不更改页面的情况下将 html 片段加载到页面中
【发布时间】:2014-04-18 15:59:51
【问题描述】:

我是 PHP 新手(3 天),我了解使用包含创建高级模板的基本概念。我想进一步利用这个工具来加载更精细的内容,但我不确定如何处理这个问题。下面的 html 是与 php 包含一起的页面模板示例。如果您引用此 html,假设我在此处包含的页面上有一个小部件:<?php include('include/WIDGET.php'); ?>。在最简单的场景中,小部件上方会有一个链接,显示为“小部件 2”。单击此链接后,我希望将 WIDGET.php 内容替换为 widget2.php。如何操作包含以加载 widget2.php

HTML

<!-- File: index.php -->  

        <html>
            <head>
                <?php include('include/head.php');?>
                <title><?php echo $siteName;?></title>
            </head>
            <body>
                <?php include('include/header.php'); ?>
        <!-- CONTENT -->
                <?php include('include/WIDGET.php'); ?>
                <?php include('include/main-content.php'); ?>
        <!-- CONTENT END -->
                <?php include('include/footer.php'); ?>
            </body>
        </html>

【问题讨论】:

    标签: php html templates include


    【解决方案1】:

    要更改包含的文件,您需要向页面提供某种参数,该参数可以有条件地包含正确的小部件。

    例如,将其包含在 URL 查询字符串中,如:

    http://yoursite/index.php?content=widget2

    然后,在你的 PHP 文件中,你可以得到这个值:

    if (isset($_GET['content']) && !empty($_GET['content'])) {
         $widget = $_GET['content'];
    } else {
         $widget = 'widget';
    }
    

    并将其包含在您的 HTML 中:

    [...]
    <!-- CONTENT -->
    <?php include('include/' . $widget . '.php'); ?>
    [...]
    

    这只是为您提供所涉及逻辑的示例,但我不会使用我提供的代码,因为它非常不安全,并且不检查文件的存在等。

    我知道您才刚刚开始,需要一次性学习很多内容,但您可能需要考虑使用 PHP 框架(例如 Zend 或 Symfony,或 CakePHP)来利用一些路由和模板解决方案已经为您设置好了。

    【讨论】:

      猜你喜欢
      • 2020-04-20
      • 1970-01-01
      • 1970-01-01
      • 2017-12-13
      • 2016-10-28
      • 2012-06-02
      • 2010-12-22
      • 2020-12-29
      • 2020-06-27
      相关资源
      最近更新 更多