【问题标题】:php wont redirect after form submission表单提交后php不会重定向
【发布时间】:2016-10-05 07:59:32
【问题描述】:

我试图在从数据库中删除一条记录后重定向我的页面,但它不会重定向。它正在回显文本并删除记录,但它只是在同一页面上重新加载我的表单,其中不再包含信息。

这是我正在使用的按钮

echo '<form>';
echo '<br /><br /><input style="cursor:pointer" class="button" type="submit" value="Delete Event" name="delete" id="delete" />';
echo '</form>';

这是用于从数据库中删除行的 PHP im

if (isset($_POST['delete'])){
        $mysqli->query('DELETE FROM information WHERE id = '.intval($_GET['id']));
        header('Location: index.php');
    }

我不知道它有什么问题。

【问题讨论】:

  • 我认为您的表单有问题。您在 $_POST 上测试 isset,但使用 $_GET 进行查询
  • 我不是说当我点击提交按钮时它会发布按钮的名称吗?被删除?然后我从 url 中的 id 中删除记录,该 url 显示数据库行中的信息,所以我使用 $_GET 来获取该 id,以便查询知道要删除哪一行。
  • 表单提交是获取或发布。我认为您不能使用 POST 方法并使用 $_GET 检索数据(无论如何,据我所知)。换句话说,如果是 POST,则链接中没有任何内容
  • 确定您已经设置了标题。显示整个代码

标签: php html forms redirect submit


【解决方案1】:

标题不起作用,可能是因为已经有另一个标题。 我建议你使用 Javascript 的一小部分:

if (isset($_POST['delete'])){ $mysqli->query('DELETE FROM information WHERE id = '.intval($_GET['id'])); echo "<script type='text/javascript'>window.location.href = 'index.php'</script>"; }

【讨论】:

    【解决方案2】:

    您的表单标签完全为空。您检查是否设置了$_POST["delete"],但您甚至没有指定表单和表单上的PHP 文件之间的通信方法。尝试将您的起始表单标记更改为:

    <form method = "POST" action = "YOUR PHP FILE.php">
    

    只要index.php 与表单处于同一级别,您的 PHP 文件看起来就很好。

    您也可以通过这种方式将页面重定向到其他地方:

    echo "<meta http-equiv="refresh" content="1;url=index.php"/>"
    

    【讨论】:

      【解决方案3】:
          <form>
          Delete id <input type = "text" name ="deleteid" id ="deleteid"/>
          <input type ="submit" name = "submit" />
          </form>
          <?php
          if (isset($_POST['submit'])){
          $id = $_POST['deleteid'];
          $query = "DELETE FROM information WHERE id = $id";
          //rest Execute the query
            header('Location: xyx.php'); 
          }
          <?
      

      【讨论】:

      • 请考虑编辑您的答案,以说明您的代码如何解决手头的问题。
      【解决方案4】:

      我假设两个代码 sn-ps 都存在于一个 PHP 文件中。然后,您的表单将默认使用 GET 方法发布到同一文件。 将您的 PHP 代码更改为如下所示:-

      <?php
      
      if (isset($_GET['delete'])){
          $mysqli->query('DELETE FROM information WHERE id ='.intval($_GET['id']));
          header('Location: index.php');
      }
      
      
      echo '<form>';
      echo '<br /><br /><input style="cursor:pointer" class="button" type="submit" value="Delete Event" name="delete" id="delete" />';
      echo '</form>';
      ?>
      

      【讨论】:

        猜你喜欢
        • 2016-09-22
        • 2013-09-10
        • 1970-01-01
        • 1970-01-01
        • 2020-07-14
        • 2013-04-13
        • 1970-01-01
        相关资源
        最近更新 更多