【问题标题】:Include PHP page and replace divs when link clicked单击链接时包含 PHP 页面并替换 div
【发布时间】:2015-12-16 23:25:18
【问题描述】:

单击链接时,我试图用另一个 PHP 页面替换 div 的内容。

链接

echo '<a href="?control=1" name="control" id="controlpanellistt">Control Panel</a>';

If 语句检查链接是否被点击

 <?php 
/** Control panel link. */
    if(isset($_GET['control'])){
        $link=$_GET['control']; 
        if ($link == '1'){
           include('controlpanel.php');
        }
    }

Divs

<div id="divContainer">
    <div id="div1">
    </div>
        <div id="div2">
        </div>
            <div id="div3">
            </div>
</div>

我正在寻找 divContainer 来保存 controlpanel.php 内容,当单击控制链接并且 div1 div2 和 div3 被“删除/隐藏”时。

我可以让这两个功能单独工作,但不能同时工作。

代码当前显示页面内的内容,但不在 div 内/隐藏所述 div 的内容。

有什么想法吗?

【问题讨论】:

  • 您想使用 AJAX/jquery 检索 controlpanel.php 并填充 divContainer,而不是链接中的 href。
  • 如果您混合使用 HTML 和 PHP,则不需要回显原始 HTML(链接),您只需关闭 PHP 标记,照常编写链接,然后重新打开 PHP标记。

标签: javascript php jquery html css


【解决方案1】:

继续使用您当前的样式,您可以简单地将条件修改为以下内容:

<?php
if ($link == '1') { 
  include('controlpanel.php'); 
} else { ?>
  <div id="divContainer">...</div>
<?php } ?>

或者,按照建议,您可以使用一些 JavaScript 在控制面板中进行热加载,同时隐藏您需要隐藏的 div。像这样的东西(jQuery):

function loadPanel() {
  $.ajax({
    url: 'controlpanel.php',
    method: GET,
    success: function(res) {
      $('#divContainer').html(res);
    }
  });
}

然后将此绑定到您的链接。

【讨论】:

  • 这可行,但是如果我有多个针对不同页面的 if 语句 - 它们开始变得嵌套,这可能会导致问题。抱歉 - 在这方面应该更清楚。
  • 在这种情况下,也许 JavaScript 解决方案会更受欢迎?也许我对这个问题还不是很清楚。如果是这样,请告诉我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-12
  • 2016-01-27
  • 2014-02-11
  • 2017-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多