0

私はOOphpを初めて使用するので、これは基本的なように思えるかもしれません。

基本的に、ユーザーが予約できるコースのリストがあります。ユーザーがリストからコースを削除できるように取得しましたが、削除後にメッセージを表示したいと思います。私はここでやりたいことと似たようなことをしました:

<form name="removecourse" action="<?php bloginfo('url');?>/user/<?php echo $current_user->first_name ; ?>" method="post">
<input type="hidden" value="<?php the_id();?>" name="courseid" />
<input id="removebutton" type="submit" name="removecourse" value="Remove">
</form>

フォームは必要なデータを同じページに送信します。そのページの上部には、フォームの投稿名が$_POST[]に存在するかどうかを確認するためのチェックがあります。

    if(isset($_POST['removecourse']) && !empty($_POST['removecourse'])){        
    $courseManager->delete_post($_POST['courseid'], $_POST['cancel-reason']);
    echo $courseManager->delete_response;
}; 

これがクラスとオブジェクトの部分の出番です...

    public $delete_response;

function delete_post($postid, $reason){

     //stuff to actually delete the post

    $this->delete_response = 'Thanks, your course has been removed.';

}

したがって、ここでは、delete_response変数に値を追加し、ページの上部でそれを呼び出しています。これは機能しますが、POSTを再送信しているので、ページを更新してもメッセージは表示されたままです。私がしていることが正しい方向に進んでいるかどうか、そして投稿/リダイレクト/取得タイプの機能を実装してメッセージがページの更新に表示されないようにする方法を考えていますか?

4

1 に答える 1

0

コースがすでに削除されているかどうかを確認する必要があります。それは簡単ですか:)。

次の理由により、再度表示します。

if(isset($_POST['removecourse']) && !empty($_POST['removecourse'])){
//is always true when posted again. 
}

存在を確認する必要があります

于 2012-06-27T12:55:19.627 に答える