PHP删除、编辑、保存帖子
我已经查询了我的数据库,我有一个帖子的ID,如下所示:PHP删除、编辑、保存帖子,php,post,save,edit,Php,Post,Save,Edit,我已经查询了我的数据库,我有一个帖子的ID,如下所示: <?php //Database query code is here. $post_id = $row['id']; ?> 我在每篇文章中添加了一个带有按钮的表单,这样当单击时,action.php文件中的相应函数将被执行以输出一个字符串。 如下 <form action = "action.php" method = "post"> <input type = "hidden" name = &l
<?php
//Database query code is here.
$post_id = $row['id'];
?>
我在每篇文章中添加了一个带有按钮的表单,这样当单击时,action.php文件中的相应函数将被执行以输出一个字符串。
如下
<form action = "action.php" method = "post">
<input type = "hidden" name = <?php echo "$post_id"?>">
<button type = "submit" name = "delete_post">Delete post </button>
<button type = "submit" name = "edit_post">Edit post </button>
<button type = "submit" name = "save_post">Save post </button>
</form>
感谢@chris85鼓励我们重读这个问题
以下是输入表单和支持表单的函数
input_form.php
<html>
<body>
<form action="action.php" method="post">
<?php echo '<input type="hidden" name="post_id" value="$post_id">' ?>
<input type="radio" name="action" value="delete_post">Delete
<br>
<input type="radio" name="action" value="edit_post">Edit
<br>
<input type="radio" name="action" value="save_post">Save
<br>
<input type="submit">
</form>
</body>
</html>
<?php
if ( ! isset($_POST['post_id']) ) {
// Handle the case if $_POST['post_id'] is not set
}
if ( ! isset($_POST['action']) ) {
// Handle the case if $_POST['action'] is not set
}
# Print the input we got
echo $_POST['post_id'];
echo '<br>';
echo $_POST['action'];
echo '<br>';
if ( $_POST['action'] === 'delete_post' ) {
delete_post($_POST['post_id']);
}
elseif ( $_POST['action'] === 'edit_post' ) {
edit_post($_POST['post_id']);
}
elseif ( $_POST['action'] === 'save_post' ) {
save_post($_POST['post_id']);
}
//first function
function delete_post($post_id){
echo " you attempted to delete the post, baby";
}
//Second function
function edit_post($post_id){
echo "Hey you attempted to edit the post!";
}
//Third function
function save_post($post_id){
echo " Wow, did you really need to save that post?";
}
?>
删除
编辑
拯救
action.php
<html>
<body>
<form action="action.php" method="post">
<?php echo '<input type="hidden" name="post_id" value="$post_id">' ?>
<input type="radio" name="action" value="delete_post">Delete
<br>
<input type="radio" name="action" value="edit_post">Edit
<br>
<input type="radio" name="action" value="save_post">Save
<br>
<input type="submit">
</form>
</body>
</html>
<?php
if ( ! isset($_POST['post_id']) ) {
// Handle the case if $_POST['post_id'] is not set
}
if ( ! isset($_POST['action']) ) {
// Handle the case if $_POST['action'] is not set
}
# Print the input we got
echo $_POST['post_id'];
echo '<br>';
echo $_POST['action'];
echo '<br>';
if ( $_POST['action'] === 'delete_post' ) {
delete_post($_POST['post_id']);
}
elseif ( $_POST['action'] === 'edit_post' ) {
edit_post($_POST['post_id']);
}
elseif ( $_POST['action'] === 'save_post' ) {
save_post($_POST['post_id']);
}
//first function
function delete_post($post_id){
echo " you attempted to delete the post, baby";
}
//Second function
function edit_post($post_id){
echo "Hey you attempted to edit the post!";
}
//Third function
function save_post($post_id){
echo " Wow, did you really need to save that post?";
}
?>
希望这有帮助
在原始代码中,每个操作类型都有一个单独的按钮(即,一个用于删除、编辑和保存)。如果您强烈希望使用多个按钮而不是单选按钮,我建议您使用以下JavaScript回答:您有三个问题:
- 您正在调用
\u$POST
而不是
- 除上述内容外,您不应将美元符号传递到帖子中:
\u$post[“$save\u post”]
应为$\u post[“save\u post”]
应该有一个正确的ID。您需要在这里实际输出$post\u ID
,而不仅仅是写出PHP变量。记得;这是原始HTML;您不在PHP块中,因此您的ID实际上只是字符串$post\u ID
。要更正此问题,请使用输出变量。您必须从表单接收ITEN,并执行if语句
<form action = "action.php?post_id=$post_id" method = "post">
<input type="hidden" name = "$post_id">
<button type="submit" name="delete_post" value="delete_post">Delete post </button>
<button type="submit" name="edit_post" value="edit_post">Edit post </button>
<button type="submit" name="save_post" value="save_post">Save post </button>
</form>
\u$POST
应该是$\u POST
,否则会发生什么?您需要首先在表单中输出$POST\u id
。检查命名索引,如果存在,则执行相应的函数if(!empty($\u POST[edit\u POST']){delete\u POST($\u GET['POST\u id'])
隐藏的输入也应该有一个静态名称和一个值,或者您不需要它。@kchason,谢谢您的更正。我现在将\u POST更改为$\u POST,并在添加delete\u POST($POST\u id);edit\u POST($POST\id);save\u POST($POST\id)信息技术worked@chris85谢谢。这帮了我很大的忙。我的代码随后运行了。但是我需要隐藏的输入,使变量名不是静态的,所以你需要回显变量,并将其放入阀中,而不是名称。谢谢,你的方法运行了,但实际上我需要三个按钮。谢谢你的响应。这很有帮助。但是,你没有指出hat$POST必须是$\u POST,“$save\u POST”必须是$POST[“$save\u POST”]中的“save\u POST”没有美元符号。这在前面的评论中已经指出。我只是添加了正确的符号,这样另一个初学者可能不会感到困惑。我的第一个要点是,\u$POST
需要是$\upost
。但是,是的,您正在寻找$\upost[“save\u POST”]
。虽然我在要点中提到了更正,但我忘记了实际更新代码。我现在已经更正了:)也很难识别@chris85,实际上从数据库检索到的每个帖子都有自己的Id,函数将使用该Id删除、编辑或保存该帖子。如果我做了,那么该函数将删除所有具有name=“static\u id”的帖子,但我只希望删除、编辑或保存一个类型的目标帖子。这就是为什么我需要一篇文章有变量name=“$post\u id”@ElizabethKof,如果你仍然不知道如何访问它,$\u post['static\u id']
会比foreach($\u post as$name=>$无用){if($name='what you checking');}
<form action = "action.php?post_id=$post_id" method = "post">
<input type="hidden" name = "$post_id">
<button type="submit" name="delete_post" value="delete_post">Delete post </button>
<button type="submit" name="edit_post" value="edit_post">Edit post </button>
<button type="submit" name="save_post" value="save_post">Save post </button>
</form>
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
//something posted
if (isset($_POST['delete_post'])) {
// delete_post code
} else if (isset($_POST['edit_post'])) {
//edit_post code
} else {
// save_post code
}
}