2012-10-14 73 views
0

Im建立這個博客網站,並最終得到一切考慮上傳多張照片到一個新聞文章完成。刪除ID爲URL的文章

現在我的第二步是刪除以下圖片的文章。 一切都在數據庫中設置,所以我需要的是來自新聞文章的ID。

當我按下文章上的刪除按鈕時,它顯示在URL中的ID ...我想知道如何從URL中獲取指定ID int,如果有更聰明的方法。它必須是面向對象和麪向對象的應用程序。

代碼如下所示:

這是循環出每一條款和通知$ current_id我放進一個按鈕中的URL,以顯示其按下時

public function doOutputArticles($newsList, $pictureList) 
    { 

     $result = ''; 
     foreach($newsList as $news) 
     { 
      $result .= '<ul>'; 
      $current_id = $news->dbNewsID; 
      $result .= '<li class="bloggNewsHeader">'.$news->dbHeader.'</li>'; 
      $result .= '<li class="bloggNews">'.$news->dbNews.'</li>'; 
      $result .= '<li class="bloggNewsDate">'.$news->dbNewsDate.'</li>'; 
      foreach($pictureList as $pic) 
      { 
       if($pic->dbNewsID == $current_id) 
       { 
       $result .= '<li class="bloggNewsPicID">'.$pic->dbPictureID.'</li>'; 
       $result .= '<img class="bloggNewsPic" src="./images/'.$pic->dbPicture.'"alt="some_text">'; 
       } 
      } 
      $result .= " 
         <form id='' method='get'> 
          <input type='hidden' name='$current_id'/> 
          <input type='submit'  name='removeArticle' value='Ta bort inlägg' /> 
         </form>"; 

      $result .= '</ul>'; 
     } 
     return "<div id='filesLoaded'>". $result ."</div>"; 

    } 

`

完成此操作後,我按下按鈕以刪除特定文章,然後ID顯示在URL中,現在此方法旨在獲取URL中的特定INT/NUMBER ID,但是如何操作?

public function GetSelectedID() 
    {  
     $ID = $_GET[self::$articleId]; 
     echo $ID; 

     if(is_null($ID) || empty($ID)) 
     { 
      return null; 
     } 
     else 
     { 
      echo $ID; 
      return $ID; 
     } 

    } 

'
親切的問候/哈里斯

回答

1

你並不真的需要一個形式,一個簡單的鏈接會做,再清楚不過了。您應該使用不同的端點進行刪除,而不是查找「removeArticle」。這將是更多的OO,因爲它將爲每個功能創建一個特定的操作控制器鋪平道路,而不是讓一個龐大的終端滿滿條件。然後,您可以擁有一個一致的參數(理想情況下位於URL路徑中)類似於您從URL中提取的「articleId」之類的內容。你最好還是希望在完成時重定向到列表頁面,以保持每個方法中的功能集中,並且作爲一種避免重複發佈問題的實踐(儘管這個例子是冪等的,所以它不會太重要)。

+0

聽起來很棒,我已經完成了所有你已經提到的事情,但現在卻停留在一件事上。無法獲取鏈接發佈的網址。我的$ _GET不會對前者做出響應:/ articleID =正在添加。甚至有可能通過鏈接使用$ _GET? :S – Rovdjuret

+0

如果您只是使用GET,那麼現在就堅持使用QueryString參數。所以有一個像'/ blog/delete?articleId = something'這樣的鏈接,然後你應該可以訪問'$ _GET ['articleId']'。從URL路徑中提取可以稍後添加,但是是一個更大的問題。 –

+0

是的,奇怪的是它不響應它。我的前是: '「Delete」;' 我得到不存在的網頁,類似'site/articleId = 30'。這很好,但是我把'header(Location:mySite);'in $ _GET函數,如果它真的......但它永遠不會出現。想知道我做錯了什麼,它用一個窗體和按鈕完美的工作,但事情是與鏈接網址是更漂亮和可讀的人類^^你知道我做錯了什麼? – Rovdjuret