[英]Passing value with POST PHP method
我的目标是每当我单击删除按钮时删除一行。 我这样做的方法是传递 ['movies_id'] 的值并将其存储在隐藏的输入中,然后在按下删除按钮时传递它。 问题是当我按下删除按钮时,它只读取第一个 id,在本例中为 1。即使我按下了 3 卡中的删除按钮。 所以,我的问题是如何传递存储在“keyToDelete”中的正确“movies_id”,这样它就不会总是读取 1?
如下图所示,来自 mysql 的 id 在卡内被很好地读取。
function displayMovies()
{
global $dbc;
$movieSelect = "SELECT * FROM movies_tbl";
$query = mysqli_query($dbc, $movieSelect);
if (mysqli_num_rows($query) == 0) {
echo "There is nothing to display.";
} else {
$edit = "";
$delete = "";
if (isset($_SESSION['type'])) {
if ($_SESSION['type'] == "admin") {
$edit = "<a href='#' class='btn btn-cyan align-self-end'>Edit</a>";
$delete = '<input type = "submit" name="delete" value="Delete" form="movieForm" class="btn btn-cyan align-self-end">';
while ($row = mysqli_fetch_assoc($query)) {
movieDesc($row['movies_id'], $row['movie_title'], $row['main_actor'], $row['movie_length'], $row['average_rating'], $row['release_date'], $row['description'], $row['img_path'], $row['trailer_url'], $edit, $delete);
}
} else if ($_SESSION['type'] == "user") {
while ($row = mysqli_fetch_assoc($query)) {
movieDesc($row['movies_id'],$row['movie_title'], $row['main_actor'], $row['movie_length'], $row['average_rating'], $row['release_date'], $row['description'], $row['img_path'], $row['trailer_url'], $edit, $delete);
}
}
} else {
for ($i = 1; $i < 4; $i++) {
$row = mysqli_fetch_assoc($query);
movieDesc($row['movies_id'],$row['movie_title'], $row['main_actor'], $row['movie_length'], $row['average_rating'], $row['release_date'], $row['description'], $row['img_path'], $row['trailer_url'], $edit, $delete);
}
}
}
}
if (isset($_POST['delete'])){
$key = $_POST['keyToDelete'];
echo"<h1>$key</h1>";
}
function movieDesc($movies_id,$movie_title, $main_actor, $movie_length, $average_rating, $release_date, $description, $img_path, $trailer_url, $edit, $delete)
{
echo '<div class="col-md-4 mb-4">
<div class="card">
<img src="images/' . $img_path . '.jpg" class="card-img-top cardImage">
<div class="card-body d-flex flex-column">
<form action="movies.php" id="movieForm" method="post">
<h3 class="card-title text-center fontEDO">' . $movie_title, $movies_id . '</h3>
<div class="row">
<div class="col">
<p class="card-text text-left"><b>Main Actor:</b></p>
<p class="card-text text-left"><b>Movie Length:</b></p>
<p class="card-text text-left"><b>Average Rating:</b></p>
<p class="card-text text-left"><b>Release Date:</b></p>
</div>
<div class="col">
<p class="card-text text-left">' . $main_actor . '</p>
<p class="card-text text-left">' . $movie_length . '</p>
<p class="card-text text-left">' . $average_rating . '</p>
<p class="card-text text-left">' . $release_date . '</p>
</div>
</div>
<p class="card-text text-left description"><br><b>Description:</b> ' . $description . '</p>
<input type="text" name="keyToDelete" value='. $movies_id .'>
</form>
<div class="mt-auto text-center">
<a href = "' . $trailer_url . '" target="_blank" class="btn btn-cyan align-self-end">Watch Trailer</a>
' . $edit . '
' . $delete . '
</div>
</div>
</div>
</div>';
}
你不能有重复的id="movieForm"
。 当您在提交按钮中使用form="movieForm"
时,它会提交具有该 ID 的第一个表单,而不是按钮之前的那个。
您应该在表单内移动提交按钮,并从按钮中删除form="movieForm"
。
或者给每个表单一个唯一的 ID,并在提交按钮的form
属性中使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.