面向对象的PHP,用于在功能成功时将消息传递给用户


Object Oriented PHP to pass message to user upon success of function

我是OO php的新手,所以这可能看起来很基本。

基本上,我有一个用户可以预订的课程列表。我已经得到了它,以便用户可以从他们的列表中删除课程,但我希望在他们删除后向他们显示一条消息。我在这里做了一些类似于我想要的事情:

<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 时,消息仍然存在。我只是想知道我正在做的事情是否沿着正确的轨道前进,以及如何实现发布/重定向/获取类型功能以阻止消息出现在页面刷新时?

您必须检查,您的课程是否已被删除,是否就这么简单:)。

您再次显示它,因为:

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

你必须检查存在