我是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.
}
你必须检查存在