2012-10-14 3 views
0

이 blogg 사이트를 구축하고 마침내 한 장의 기사에 여러 장의 사진을 업로드하는 것을 고려했습니다.URL에서 ID가있는 기사를 제거하는 중

내 두 번째 단계는 다음 그림이 포함 된 기사를 삭제하는 것입니다. 모든 것이 데이터베이스에 설정되어 있으므로 필요한 것은 뉴스 기사의 ID입니다.

기사에서 제거 버튼을 누르면 URL에 ID가 표시됩니다 ... URL에서 특정 ID int를 얻는 방법이 궁금하고 더 스마트 한 접근 방법이 있습니다. OOP이어야하며 객체 지향적이어야합니다.

코드는 다음과 같습니다 : 그 누르면

는 URL에 보여 내가 버튼에 넣어 각 기사 예고 $의 current_id을 루핑

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에서 추출하는 "articleId"와 같은 매개 변수 (URL 경로 내에있는 것이 이상적)를 사용할 수 있습니다. 또한 각 방법에 초점을 맞추고 이중 게시 문제를 피하기 위해 완료시 목록 페이지로 리디렉션하는 것이 이상적입니다. 그러나이 예는 멱등원이므로 지나치게 중요하지는 않습니다.

+0

대단한데, 나는 거의 모든 것을 끝냈습니다.하지만 지금은 한 가지만 붙어 있습니다. 링크가 게시하는 URL을 가져올 수 없습니다. My $ _GET은 ex :/articleID = beeing에 응답하지 않습니다. $ _GET을 링크와 함께 사용할 수 있습니까? : S – Rovdjuret

+0

GET을 사용하는 경우 지금 QueryString 매개 변수를 사용하십시오. 그래서'/ blog/delete? articleId = something'과 같은 링크를 가지고 있다면'$ _GET [ 'articleId']'에 접근 할 수 있어야합니다. URL 경로에서 추출하는 것은 나중에 추가 할 수 있지만 큰 문제입니다. –

+0

그래, 이상한 것은 그것이 그것에 응답하지 않는다는 것입니다. 내 전치 : ''Delete ";' 'site/articleId = 30'과 같은 것이 나던 페이지에 도착합니다. 괜찮습니다. 그런 다음'header (Location : mySite);를 입력하십시오. 사실이라면 $ _GET 함수가 ... 그러나 그것은 결코 진실이 아닐 것입니다. 어떤 일을 잘못하고 있는지 궁금해하고, 그것은 양식과 버튼으로 완벽하게 작동하지만 링크가 있으면 URL이 인간에게 훨씬 더 예쁘고 읽기 쉽습니다 ^^ 무엇이 잘못되었는지 알고 있습니까? – Rovdjuret

관련 문제