私は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を再送信しているので、ページを更新してもメッセージは表示されたままです。私がしていることが正しい方向に進んでいるかどうか、そして投稿/リダイレクト/取得タイプの機能を実装してメッセージがページの更新に表示されないようにする方法を考えていますか?