我在删除文章时遇到问题。我希望它在点击提交按钮后删除,但我不知道如何。我不想在select标签中使用javascript自动提交表单。你能帮我吗 ?我会赞同这一点。感谢。
<?php
session_start();
include_once('../includes/conn.php');
include_once('../includes/article.php');
$article= new Article;
if(isset($_SESSION['logged_in'])){
if(isset($_POST['id'])){
$id=$_POST['id'];
$query=$pdo->prepare('DELETE FROM articles WHERE article_id=?');
$query->bindValue(1, $id);
$query->execute();
header('Location: delete.php');
}
$articles=$article->fetch_all();
?>
<html>
<head>
<title>CMS Tutorial</title>
<link rel="stylesheet" href="assets/style.css" />
</head>
<body>
<div class="container">
<a href="index.php" id="logo">CMS</a>
<br/>
<h4>Delete article:</h4>
<form action="delete.php" method="post" name="id">
<select>
<?php foreach($articles as $article){?>
<option value="<?php echo $article['article_id']; ?>"><?php echo $article['article_title']; ?></option>
<?php } ?>
</select>
<input type="submit" value="Delete article">
</form>
</div>
</body>
?>
答案 0 :(得分:1)
根据您的代码,将name="id"
从表格转移到选择。
您正在尝试选择下拉列表ID,因此名称应该提供给选择。
<form action="delete.php" method="post" name="id">
<select>
到
<form action="delete.php" method="post">
<select name="id">
您的代码中注意到的另一个问题是,您应该终止执行
header('Location: delete.php');
die();
之后立即或{。}}
exit();
以确保不应执行剩余的行。在PHP中,
header()
只是一个帮助设置标题的函数,在这里
您正在解决位置标题,该标题由浏览器进一步处理
采取必要的行动(这里重定向)。所以,header()
会这样做
不确保停止执行剩余的代码。
答案 1 :(得分:0)
将delete.php
添加到表单而不是php
以执行上面的name="id"
代码,并假设该文件看起来像您的帖子。
并将select
添加到form
元素以抓取要操作的值,而不是session_start();
include_once('../includes/conn.php');
include_once('../includes/article.php');
$article= new Article;
if(isset($_SESSION['logged_in'])){
if(isset($_POST['id'])){
$id=$_POST['id'];
$query=$pdo->prepare('DELETE FROM articles WHERE article_id=?');
$query->bindValue(1, $id);
$query->execute();
header('Location: delete.php');
}
$articles=$article->fetch_all();
?>
<html>
<head>
<title>CMS Tutorial</title>
<link rel="stylesheet" href="assets/style.css" />
</head>
<body>
<div class="container">
<a href="index.php" id="logo">CMS</a>
<br/>
<h4>Delete article:</h4>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<select name="id">
<?php foreach($articles as $article){?>
<option value="<?php echo $article['article_id']; ?>"><?php echo $article['article_title']; ?></option>
<?php } ?>
</select>
<input type="submit" value="Delete article">
</form>
</div>
</body>
。
我希望这可以根据您在帖子中提供的内容进行操作。
value