表单提交后,php不会重定向

时间:2016-06-05 18:02:04

标签: php html forms redirect submit

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

这是使用

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

这是PHP im用于从DB中删除行

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

我不知道它有什么问题。

4 个答案:

答案 0 :(得分:2)

标题不起作用,可能是因为还有另一个标题。 我建议你使用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>"; }

答案 1 :(得分:1)

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

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

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

您还可以通过这种方式将页面重定向到其他位置:

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

答案 2 :(得分:1)

我假设两个代码片段都存在于单个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>';
?>

答案 3 :(得分:0)

    <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'); 
    }
    <?