首页 > 解决方案 > 如何将 GET 参数传递给 POST 表单

问题描述

抱歉,如果标题有点不清楚,我不知道如何正确措辞。

但基本上我的问题归结为:我有一个页面,我可以在其中向我的数据库发布新的博客文章,这很好用,但我也希望同一页面能够编辑现有的博客文章。

我这样做的方式是:我有一个下拉选择,如果我选择一个帖子,我会在其中循环浏览数据库中的所有帖子,我的 URL 也会更改为这个,http://localhost/blabla/BlogPost.php?blogid=133这也很好,但是当我单击保存更改按钮时是使用 POST 方法的形式。显然 GET 参数丢失并且它不保存更改。

// 这是我检查 blogid 是否设置以及显示哪个按钮的地方

            if (!isset($_GET["blogid"])){
            ?>
            <button name="submitButton" type="submit" class="btn btn-primary"> Opslaan</button>
        </form>
        <?php
        } elseif (isset($_GET["blogid"])) {
            ?>
            <form method="post" action="BlogBE.php">
                <button name="submitBtnEdit" class="btn btn-primary" type="submit"> Wijziging opslaan</button>
            </form>

            <?php
        }
        ?>

// 这是检查哪个按钮被点击的脚本

if (isset($_POST["submitBtnEdit"])) {
        try {
            $blogid = $_GET["blogid"];
            // save file as binary base64 data in database
            $uploadFile = $upload->save();

            // initialize new connection
            $db = new Connection();

            // open connection
            $database = $db->openConnection();

            // prepare query
            $stm = $database->prepare("UPDATE `blog` SET `title` = :title, `content` = :content, `author` = :author, `img` = :img WHERE blog.blogid = $blogid");

            $text = $_POST["editor1"];

            // bind parameters for query
            $stm->bindParam("title", $_POST["title"], PDO::PARAM_STR);
            $stm->bindParam("content", $_POST["editor1"], PDO::PARAM_STR);
            $stm->bindParam("author", $_POST["author"], PDO::PARAM_STR);
            $stm->bindParam("img", $uploadFile, PDO::PARAM_STR);


            // execute query
            $database->beginTransaction();

            $result = $stm->execute();

            $database->commit();

            if ($result === TRUE) {
                echo sprintf("Successfully posted");
                $db->closeConnection();
            } else {
                echo sprintf("Something went wrong");
            }
        } catch (InvalidFilenameException $e) {
            echo sprintf("Invalid filename" . $e->getMessage());
        } catch (InvalidExtensionException $e) {
            echo sprintf("Invalid extension" . $e->getMessage());
        } catch (FileTooLargeException $e) {
            echo sprintf("File is to large" . $e->getMessage());
        } catch (UploadCancelledException $e) {
            echo sprintf("upload is cancelled" . $e->getMessage());
        } catch (Error $e) {
            echo sprintf("Something went wrong" . $e->getMessage());
        } catch (InputNotFoundException $e) {
            echo sprintf("Input not found" . $e->getMessage());
        }
    }

所以我的问题是如何将 GET 参数保存在 POST 表单中

标签: phphtml

解决方案


推荐阅读