从URL中删除带ID的文章

时间:2012-10-14 12:34:14

标签: php

我正在构建这个blogg网站,并最终考虑将所有内容放到一个新闻文章上。

现在我的第二步是删除包含以下图片的文章。 一切都在数据库中设置,所以我需要的是新闻文章中的ID。

当我按下文章上的删除按钮时,它会在URL中显示ID ...我想知道如何从URL获取指定ID ID并且如果有更智能的方法。它必须是OOP和面向对象的apporach。

代码如下所示:

这是每篇文章的循环,并注意我在按下时按下的按钮显示的$ 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 个答案:

答案 0 :(得分:1)

你真的不需要一个表格,一个简单的链接会做得更清楚。您应该使用不同的端点进行删除,而不是查找“removeArticle”。这将是更多的OO,因为它将为每个功能创建一个特定的动作控制器铺平道路,而不是让一个庞大的端点充满条件。然后,您可以在URL中提取类似“articleId”的一致参数(最好在URL路径中)。理想情况下,您还希望在完成时重定向到列表页面,以便将功能集中在每种方法中,并且还可以避免双重发布问题(尽管此示例是幂等的,因此它不会过于重要)。