我在让一个页面向另一个页面发送一些数据时遇到很多麻烦。我正在这个电影网站上工作,其中有显示电影的索引页面,当我单击电影时,我想访问该电影页面,其中有评论。事实是,我想将电影 id 发送到 movie-detail.php 页面,因为我想在电影详细信息页面的评论部分过滤与该电影相关的评论。这是位于索引页中的电影海报,并使用附加在 js 文件中创建,当我单击它时:
<div class="movie-poster" onclick="loadComments(${movie.id})" data-movie-id="${movie.id}">...
...
它触发此功能:
function loadComments(movieId){
$.post("/web/action/show-comments.php", { movieId });
}
这是show-comments.php:
<?php
include "../../db/db_conn.php";
if(!isset($_SESSION)) session_start();
if(isset($_POST['movieId'])) $movieId = $_POST['movieId'];
$userId = $_SESSION['id'];
$sql = "SELECT * FROM reviews WHERE movie_id="."$movieId"; #WHERE movie_id="."$movieId";
$result = pg_query($conn,$sql);
while ($row = pg_fetch_row($result)) { ?>
<div style="background-color: #aaa; padding: 8px 16px; margin: auto; margin-bottom: 8px; border:1px solid black; border-radius:10px; border-left:4px solid black; width: 80%;">
<hr style="opacity:0.9">
<p style="background-color: grey; padding: 16px; border-radius:10px">Reviewed by: <?php echo "$row[2]" ?></p>
<hr style="opacity:0.9">
<p> <?php echo "$row[1]" ?></p>
</p>
<hr style="opacity:0.9">
<span class="fa fa-star checked"></span>
<span class="fa fa-star checked"></span>
<span class="fa fa-star checked"></span>
<span class="fa fa-star"></span>
<span class="fa fa-star"></span>
<hr style="opacity:0.9">
</div>
<?php }
?>
show-comments.php
包含在movie-detail.php
页面的评论部分div中,但是当我尝试进入那里时,它总是给我关于$movieId变量的未定义数组键错误。我唯一需要的是电影 ID。我尝试了很多方法,使用cookies和隐藏的输入字段,但似乎没有任何效果,它总是给我这个错误。我尝试打印 $_POST
数组,但它是空的。我做错了什么?
尝试以下一项,如果错误请纠正我。 我认为您没有正确使用 $.post() 函数,因为 movieId 未正确格式化为键值对 试试这个
function loadComments(movieId) {
$.post("/web/action/show-comments.php", { movieId: movieId });
}