我正在尝试使用 $.post 将值发送到另一个页面,但是当我尝试访问该值时,$_POST[value] 不起作用。我能做什么?

问题描述 投票:0回答:1

我在让一个页面向另一个页面发送一些数据时遇到很多麻烦。我正在这个电影网站上工作,其中有显示电影的索引页面,当我单击电影时,我想访问该电影页面,其中有评论。事实是,我想将电影 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
数组,但它是空的。我做错了什么?

javascript php html jquery ajax
1个回答
0
投票

尝试以下一项,如果错误请纠正我。 我认为您没有正确使用 $.post() 函数,因为 movieId 未正确格式化为键值对 试试这个

function loadComments(movieId) {
  $.post("/web/action/show-comments.php", { movieId: movieId });
}
© www.soinside.com 2019 - 2024. All rights reserved.