0

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

4

1 回答 1

0

你必须检查一下,要么你的课程已经被删除,就这么简单:)。

你的再次显示它,因为:

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

你必须检查存在

于 2012-06-27T12:55:19.627 回答