2012-06-27 21 views
0

成功傳遞消息給用戶..面向對象的PHP在我新的PHP OO所以這可能看起來基本的功能

基本上我有課程,用戶可以預訂的列表。我已經知道了,所以用戶可以從他們的列表中刪除該課程,但我希望在他們刪除後向他們顯示一條消息。我已經做了類似的東西我想在這裏:

<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。我只是想知道我正在做的是沿着正確的軌道,以及如何實現Post/Redirect/Get類型的功能,以阻止頁面刷新時出現消息?

回答

0

你必須檢查,無論你的課程已被刪除,是這樣簡單:)。

此致再次顯示它,因爲:

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

你必須檢查existiance

+0

'isset($ _ POST [ 'removecourse'])&&空($ _ POST [ 'removecourse'])' ==='!empty(['removecourse'])'因爲'empty'包含檢查,是否設置了變量。 – feeela

+0

所以你說我必須檢查看看我的課程已被刪除?這將需要一個數據庫查詢或沿着這些線somehign是? – JamesG

+0

實際上它就像你需要檢查一樣,每個人都這樣做。一個dbquery不是那麼耗時。 –