如何在使用$.post方法时解决无法访问$_POST值的问题
P粉043432210
2023-08-15 11:51:39
<p>我在一个页面向另一个页面发送数据时遇到了很多麻烦。我正在开发一个电影网站,在首页上显示电影,当我点击电影时,我想要访问电影详情页面,其中包含评论。事实上,我想要将电影ID发送到movie-detail.php页面,因为我想要在电影详情页面的评论部分中筛选与该电影相关的评论。这是在首页中的电影海报,通过在一个js文件中使用append创建的,当我点击它时:</p>
<pre class="brush:php;toolbar:false;"><div class="movie-poster" onclick="loadComments(${movie.id})" data-movie-id="${movie.id}">...
...</pre>
<p>它触发了这个函数:</p>
<pre class="brush:php;toolbar:false;">function loadComments(movieId){
$.post("/web/action/show-comments.php", { movieId });
}</pre>
<p>这是show-comments.php:</p>
<pre class="brush:php;toolbar:false;"><?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">评论者:<?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 }
?></pre>
<p><code>show-comments.php</code>被包含在<code>movie-detail.php</code>页面的评论部分div中,但当我尝试进入该页面时,它总是给我关于$movieId变量的未定义数组键错误。我唯一需要的是电影ID。我尝试了很多方法,使用cookie和隐藏输入字段,但似乎都不起作用,总是给我这个错误。我尝试打印<code>$_POST</code>数组,但它是空的。我做错了什么?</p>
尝试以下方法,如果有错误请纠正。 我认为你没有正确使用 $.post() 函数,因为 movieId 没有正确格式化为键值对。 请尝试以下方法