-1

良い一日

ここで助けが必要です。削除ボタンは機能しますが、削除ボタンをクリックしてもページが自動的に更新されません。私はまだデータベースからデータを手動で取得する必要があり、データがすでに削除されていることを反映しています...

これがphpを削除するための私のコードです:これを作成してページを自動的に更新するにはどうすればよいですか?

<?php
require 'include/DB_Open.php';

$id = $_POST['id'];
    $idtodelete = "'" . implode("','",$id) . "'";


    $query = "DELETE FROM tbl WHERE ticket in (" . $idtodelete . ")";
    $myData = mysql_query($query);
    echo "DATA DELETED";

    if($myData)
    {
    header("Location: delete.php");
    }

include 'include/DB_Close.php';
?>
4

3 に答える 3

0

削除ロジックの後にデータをフェッチすることをお勧めします。次に、チケットを取得する前に削除ロジックが実行されます。その後、同じページへのリダイレクトは必要ありません。

//
// DELETE
//
if (isset($_POST['delete'] && isset($_POST['id'])) {
     // Do delete stuff, 
     // notice delete variable which would be the name of the delete form button e.g.
     // If you like, you can still echo "Data deleted here" in e.g. a notification window
}
//
// FETCH data
//
$query = "Select * FROM tbl";
...
于 2013-04-23T07:54:01.707 に答える
0

コメントの1つとphpドキュメントで提案されているように:

http://it2.php.net/manual/en/function.header.php :

実際の出力が送信される前に、通常の HTML タグ、ファイル内の空白行、または PHP から header() を呼び出す必要があることに注意してください。include 関数、require 関数、または別のファイル アクセス関数を含むコードを読み取り、header() が呼び出される前に出力されるスペースまたは空の行があることは、非常に一般的なエラーです。単一の PHP/HTML ファイルを使用する場合にも、同じ問題が存在します。

基本的に、次のものを取り出す必要があります。

echo "DATA DELETED";

とにかくページがリダイレクトされる場合、その文字列をエコーし​​ようとするポイントは何ですか?

派手にしたい場合は、Ajax を使用して削除しsetTimeout()、メッセージを表示してから JavaScript の x 秒後にトリガーすることができます。

または、本当に本当に、本当に、この方法でやりたい場合は、エラーレポート/表示を無効にすることができます(とを使用error_reporting(0)ini_set('display_errors', 'Off')ます。経験から、それが機能することはわかっていますが、厄介で非常に非常に強くお勧めしません

于 2013-04-23T08:12:29.250 に答える