如何在使用$.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; widius: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 沒有正確格式化為鍵值對。 請嘗試以下方法