2016-06-05 2 views
0

Я пытаюсь перенаправить мою страницу после удаления записи из базы данных, но она не будет перенаправлена. Он выводит текст, а также удаляет запись, но он просто перезагружает меня на одной странице с формой, в которой больше нет информации.php wont redirect после отправки формы

Вот кнопка им с помощью

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

Вот РНР им помощи, чтобы удалить строку из БД

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

Я понятия не имею, что случилось с ним.

+0

Я думаю, что есть проблема в вашей форме. Вы тестируете isset на $ _POST, но запрос с использованием $ _GET –

+0

я не прав, говоря, что, когда я нажимаю кнопку отправки, он публикует имя кнопки? удаление? Затем я удаляю запись из идентификатора, который находится в URL-адресе, который отображает информацию в строке базы данных, поэтому я использую $ _GET, чтобы вернуть этот идентификатор, чтобы запрос знал, какую строку удалить. –

+0

Форма отправления - либо получить, либо опубликовать. Я не думаю, что вы можете использовать метод POST и получать данные с помощью $ _GET (насколько мне известно). Другими словами, если это POST, в ссылке –

ответ

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

Ваша форма тега совершенно пуста. Вы проверяете, установлен ли $_POST["delete"], но вы даже не указали способ связи между вашей формой и вашим файлом PHP в вашей форме. Попробуйте изменить начальную форму тег к этому:

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

Ваш файл PHP кажется хорошо, пока index.php находится на том же уровне, что и формы.

Вы также можете перенаправить страницу где-то так:

echo "<meta http-equiv="refresh" content="1;url=index.php"/>" 
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'); 
    } 
    <? 
+0

Пожалуйста, подумайте над редактированием ответа, чтобы включить объяснение того, как ваш код решает проблему. – Matt

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>'; 
?> 
Смежные вопросы