重新加载加载了带有 GET 请求的页面


reload page loaded with GET request

在索引中.php 我根据 PHP 请求加载一个 php 页面:

<div id="mainContent">
    <?php
        if(isset($_GET['incidentsView'])) {
            include ("incidents.php");
        }
    ?>
</div>

导航

<div class="sidebar-nav navbar-collapse" id="sidebarNavigationList">
        <ul class="nav in" id="side-menu">
            <li><a href="index.php?incidentsView" id="pageIncidents">Einsatzliste</a></li>
        </ul>
    </div>

事件.php页面本身包含一个表单,其中正在 POST 变量中评估提交按钮:

if(isset($_POST['submit'])) {
    header('Location: '.$_SERVER['REQUEST_URI']);
}

以便在按下提交按钮时重新加载页面。此页中有一个显示 SQL 数据库内容的表。点击提交按钮后,所有内容都会刷新,包括包含新数据的表格。如果我直接加载事件,这工作正常.php。但是当我加载索引.php并且事件.php包含在 index.php 中,并且我按下按钮时,根本没有刷新任何内容。仅当我再次单击菜单中的链接时。我需要如何重写我的代码,即使我在 index.php 上,此刷新也在工作?

您在输出某些 HTML ( <div id="mainContent"> ) 后包含incidents.php,并且在已经输出某些内容无法发送header()。您有 2 个选项:

  1. 重新编写代码,以便在任何 HTML 之前调用header()
  2. 请改用 JavaScript 重定向incidents.php

    if(isset($_POST['submit'])) {
        echo '<script>location.href = ' . $_SERVER['REQUEST_URI']) . ';</script>';
    }