繁体   English   中英

使用 POST PHP 方法传递值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM