0

我正在建立这个博客网站,终于完成了考虑将多张图片上传到一篇新闻文章的一切。

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

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

代码如下所示:

这是循环出每篇文章并注意 $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;
        }

    }

`
亲切的问候/哈里斯

4

1 回答 1

1

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

于 2012-10-14T12:55:58.373 回答