button押下で、削除の実行とページ遷移したい


buttonをクリックし、name='action'がPOSTされたら、DELETEをexecute();しているのですが、  
このとき、同時にhome.phpへ遷移させたいです。

`<button type='submit' name='action' value='delete'
onclick="location.href='home.php'">`  
だったり、  
`if ($_POST['action'] == 'delete') {$stmt->execute(); header("Location:
./home.php");}`  
なども試したのですが、うまくいきませんでした。

いろいろ調べて試したのですが、自分の力では、遷移と削除のどちらか一方しか一度に実行できませんでした。  
方法をご存知の方、ご教示いただけると幸いです。

[code]

    $stmt = $db->prepare("DELETE FROM table WHERE url = :url");
    $stmt->bindValue(":url", $url, PDO::PARAM_STR);
    echo "<form method=\"post\"><button type='submit' name='action' 
    value='delete'>Delete</button></form>";
    if ($_POST['action'] == 'delete') {
        $stmt->execute();
    }
    
[/code]




上記のコードが action=delete 自の処理だとした場合、中でechoしてしまうと php はヘッダを出力してしまいます。  
つまり後から

[code]

    header("Location: ./home.php");
    
[/code]

を実行しても移動しなくなってしまいます。また削除の prepared statement が作られているのに if
の中だけでしか実行していないのも気になります。

[code]

    if ($_POST['action'] == 'delete') {
        $stmt = $db->prepare("DELETE FROM table WHERE url = :url");
        $stmt->bindValue(":url", $url, PDO::PARAM_STR);
        $stmt->execute();
        header("Location: ./home.php");
        return;
    }
    
[/code]

こう書くと action=delete 時に削除クエリを実行し、その後画面遷移してくれるかと思います。

