首页 > 解决方案 > 单击特定图像或文本时在重定向页面中显示相关信息而无需重新加载

问题描述

我想用一个例子来解释我的疑问

假设我有电影数据库,我在每行中存储了与特定电影相关的信息。

假设我的数据库中有两行

1) 泰坦尼克号 1997 浪漫、惊悚

2) 阿凡达 2009 动作、奇幻、浪漫

我有 homepage.php,其中带有文本的电影图像显示为画廊,我有一个 movieinfo.php 页面,其中存在有关电影的所有信息。

前任 :

作品名称:《泰坦尼克号》

发行日期:“1997”

类型:“浪漫、惊悚”

ETC

现在,当我单击泰坦尼克号图像(在我的 homepage.php 中)时,它应该重定向到movieinfo.php 并使用 id 从数据库中获取泰坦尼克号信息,并且应该在双引号“”中显示泰坦尼克号的相关信息(什么都不应该改变在movieinfo.php 中,而不是放在双引号中的那些值)。

当我点击头像图像时也会发生同样的情况

我试图用 php 更改该信息,但它从数据库中获取最后导入的数据并显示该信息。经过一些研究,我发现 AJAX 是可能的,但我绝对是 AJAX 的初学者。需要有人帮助了解逻辑,如果你给我上面的例子的小代码会更有帮助

谢谢

我已经创建了示例代码,以便我可以从您那里获得帮助

可以说这是我的moviedb.php(其中包含电影插入php代码)

<?php
$title = "";
$releaseDate = "";
$Genre = "";


if (isset($_POST['submit-btn'])) {
    if (empty($_POST['title'])) {
        $errors['title'] = 'Title required';
    }
    if (empty($_POST['genre'])) {
        $errors['genre'] = 'Genre required';
    }
    if (empty($_POST['releaseDate'])) {
        $errors['releaseDate'] = 'Release Date required';
    }

    $title = $_POST['title'];
    $releaseDate = $_POST['releaseDate'];
    $genre = $_POST['genre'];

    // Check if title already exists
    $sql = "SELECT * FROM movie WHERE movie_title='$title' LIMIT 1";
    $result = mysqli_query($conn, $sql);
    if (mysqli_num_rows($result) > 0) {
        $errors['title'] = "Title already exists";
    }

    if (count($errors) === 0) {
        $query = "INSERT INTO movie SET movie_title=?, movie_releaseDate=?, movie_genre=?";
        $stmt = $conn->prepare($query);
        $stmt->bind_param('sss', $title, $releaseDate, $genre);
        $result = $stmt->execute();

        if ($result) {
            $movie_id = $stmt->insert_id;
            $stmt->close();

            $_SESSION['movie_id'] = $movie_id;
            $_SESSION['title'] = $title;
            $_SESSION['releaseDate'] = $releaseDate;
            $_SESSION['genre'] = $genre;
            $_SESSION['message'] = 'Movie has been inserted succesfully!';
            header('location: movieinsertion.php');
        } else {
            $_SESSION['error_msg'] = "Database error: Could not insert movie";
        }
    }
}

?>

这是movieinsertion.php(其中包含将电影详细信息输入数据库的表格)

    <form action="movieinsertion.php" method="post">
      <label for="title"><b>Title : </b></label>
      <input type="text" placeholder="Enter Title" name="title" required>

      <label for="releaseDate"><b>Release Date : </b></label>
      <input type="text" placeholder="Enter Release Date" name="releaseDate" required>

      <label for="genre"><b>Genre : </b></label>
      <input type="text" placeholder="Enter Genre" name="genre" required>

      <div class="clearfix">
        <button type="submit" class="submitbtn" name="submit-btn" id="submit-btn">Movie insert</button>
      </div>
    </form>

这是movieinfo.php(显示电影信息的地方)

      <p class="movieinfo">
        <b style="font-size:20px; color:tomato;"> Title : </b> <?php echo $_SESSION['title']; ?> 
        <br/>
        <b> Release Date : </b>  <?php echo $_SESSION['releaseDate']; ?>
        <br/>
        <b> Genre : </b>  <?php echo $_SESSION['genre']; ?>
       </p>

这是 homepage.php(使用锚标记放置电影图像的位置)

    <div class="movieimg">
       <a href = "movieinfo.php"> <img src="assets/image-1.jpg" alt="Titanic" style="width:100%">
          <div class="text">Titanic</div></a>
    </div>

    <div class="movieimg">
       <a href = "movieinfo.php"> <img src="assets/image-2.jpg" alt="Avatar" style="width:100%">
          <div class="text">Avatar</div></a>
    </div>

标签: phpmysqlajax

解决方案


推荐阅读