php - 如何将 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 表单中
解决方案
推荐阅读
- r - 熔化函数(R/reshape)提供错误
- git - 获取换行数
- c# - 在字符串中查找整数值并在处理后替换它们
- java - 使用 Luhn 算法进行信用卡检查
- java - AdminTask.createDatasource 在 Dockerfile 中给出语法错误
- c# - `Task` 上下文可以在它的第一个 `await` 之前切换吗?
- vba - 使用VBA在一个单元格中插入公式
- python - 创建虚拟变量时发生错误-SparkException:作业因阶段失败而中止:阶段 5.0 中的任务 59 失败 1 次
- unity3d - 忽略Unity中除alpha之外的所有父画布组属性?
- angular - npm install 抛出“使用 sha1 时完整性校验和失败:想要 sha1-6G ...= 但得到 sha512 ...”错误