2015-01-29 4 views
0

Я создал таблицу с двумя кнопками - добавьте новую строку и удалите строку. Код для его удаления называется wit ajax и написан в другом php-файле. Это код:Почему перенаправление не работает?

<?php 

ob_start(); //eliminates buffer collisions 
require_once('connect_db.php'); 
$name = $_POST['x']; 
$surname = $_POST['y']; 

$result = pg_query(connect(), "delete from lecturer where name='$name' and surname='$surname'");  
//dump the result object 
var_dump($result); 


//reloading the page 
header("location: lecturer.php?fail=2", TRUE,307); 
?> 

И я использую эту функцию AJAX для вызова файла:

$.ajax({ type: "POST", 
      url: "delete_lecturer.php", 
      data: { x: names, y: surname} 
     }) 

При попытке удалить строку, то эта строка была удалена, но у меня есть, чтобы обновить чтобы увидеть это. В окне журнала отображается содержимое главной страницы, где у меня есть кнопка удаления. Если я прокомментирую строку с заголовком(); он не перенаправляется (очевидно), и в окне журнала говорится «resource (2) типа (результат pgsql)». Кто-нибудь знает, что я делаю неправильно?

PS: Когда я использую кнопку «Добавить новую строку», она работает нормально. Он сразу отображает вновь добавленную строку. Это код для ввода новой строки:

<?php 
ob_start(); //eliminates buffer collisions 
    require_once('connect_db.php'); 
    $id = time(); //creates a unique id using the unix time 
    $result = pg_query(connect(), "INSERT INTO lecturer VALUES ($id, '$_POST[name]','$_POST[surname]','$_POST[dep]')"); 

    //dump the result object 
    var_dump($result); 

    //reloading the page 
    header("location: lecturer.php"); 

?> 
+0

Спасибо, плохо проверьте его, и если это случай, удалите мой вопрос. –

+0

Работает ли он, если вы просто перенаправляете заголовок без кода 307 и не устанавливаете TRUE? – Halfstop

+0

Удалить 'var_dump ($ result);' – AbraCadaver

ответ

0

Хорошо, я понял (довольно много). Рассказ, мне не нужно перенаправлять из файла php. Я просто вставить эту функцию для перенаправления с помощью AJAX:

.done(function(msg) { 
      location.reload(); 
    }) 

Относительно того, почему это должно быть сделано, я понимаю, но не могу вполне объяснить. Решение найдено по адресу https://www.udemy.com/blog/jquery-refresh-page/

+0

Имея ручку ajax, перезагрузка - лучший способ пойти. Я рекомендую вернуть json с истинным или ложным в зависимости от того, действительно ли произошло действие удаления. – Halfstop

+0

спасибо, сделаю это. –

Смежные вопросы