为什么重定向不起作用?

时间:2015-01-29 16:33:25

标签: php ajax postgresql

我创建了一个包含两个按钮的表 - 添加新行和删除行。删除它的代码称为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}
        })

当我尝试删除一行时,该行被删除,但我必须刷新页面才能看到这一行。日志窗口显示我有删除按钮的主页面的内容。 如果我用header()注释该行;它没有重定向(显然),并且日志窗口显示“类型的资源(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");

?>

1 个答案:

答案 0 :(得分:0)

好的,我想通了(差不多)。 简短的故事,我不必从PHP文件重定向。 我只是插入此函数来从ajax重定向:

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

至于为什么必须这样做,我理解它,但不能解释。 在https://www.udemy.com/blog/jquery-refresh-page/

找到解决方案