我是否需要从 switch case 返回任何重要的内容,或者只是这样就足以区分不同的 PHP?

问题描述 投票:0回答:1

我正在尝试创建一个管理页面,下面是我的代码及其多个面板,其中单击相应的图像将导致将

replaceThis
div
更改为其各自的 php 文件内容。

<div class="left-container">
    <img src="" id="Dashboard" alt="Dashboard">
    <img src="" id="ManUse" alt="Manage Users">
    <img src="" id="ManFile" alt="Manage Files">
    <img src="" id="FfApprove" alt="Files for Approval">
</div>
<div class="right-container" id="replaceThis">

    <?php 
        switch($_SESSION['admain']){
            case 'Dashboard':
                         
            break;
            case 'ManUse':
                           
            break;
            case 'ManFile':
                            
            break;
            case 'FfApprove':

            break;
        }
    ?>
</div>

到目前为止,这是我的javascript代码,各个PHP文件的内容当前为空,因为我不知道是否需要打印函数或只调用整个php文件(我不知道该怎么做还) 或者我应该将 `$_SESSION['admin'] 合并到 php 文件中。

$(document).ready(function() {
  $("#Dashboard").click(function() {
    let selID = $(this).attr('id');
    $("#replaceThis").load(".modular/dasbord.php", {
      newDis : selID
    });
  });
});

$(document).ready(function() {
  $("#ManUse").click(function() {
    let selID = $(this).attr('id');
    $("#replaceThis").load(".modular/manuser.php", {
      newDis : selID
    });
  });
});

$(document).ready(function() {
  $("#ManFile").click(function() {
    let selID = $(this).attr('id');
    $("#replaceThis").load(".modular/manfile.php", {
      newDis : selID
    });
  });
});

$(document).ready(function() {
  $("#FfApprove").click(function() {
    let selID = $(this).attr('id');
    $("#replaceThis").load(".modular/forapprove.php", {
      newDis : selID
    });
  });
});
javascript php jquery
1个回答
1
投票

你需要保持干燥(不要重复自己)并且只有一个 php 返回内容。 该开关不属于index.php,而是属于replacethis.php

还要确保所有内容拼写正确

$(function() {

  function loadPage(id) {
    let selID = id || $(this).attr('id'); // if passed an ID use it
    console.log(selID);
    $("#replaceThis").load(".modular/replacethis.php", {
      newDis: selID
    });
  }

  const $nav = $(".left-container")
    .on("click", 'img', loadPage); // any click on an image
  loadPage($nav.find('img').eq(0).prop('id')); // initialise
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<div class="left-container">
  <img src="" id="Dashboard" alt="Dashboard">
  <img src="" id="ManUse" alt="Manage Users">
  <img src="" id="ManFile" alt="Manage Files">
  <img src="" id="FfApprove" alt="Files for Approval">
</div>
<div class="right-container" id="replaceThis"></div>

然后替换this.php就可以了

<?php 
    switch($_POST['newDis']){
        case 'Dashboard':
          file_get_contents('dashboard.html');
          break;
        case 'ManUse':
          file_get_contents('manuse.html');                         
          break;
        case 'ManFile':
          file_get_contents('manfile.html');                          
          break;
        case 'FfApprove':
          file_get_contents('ffapprove.html');
          break;
    }
?>
© www.soinside.com 2019 - 2024. All rights reserved.