$.post メソッドを使用するときに $_POST 値にアクセスできない問題を解決する方法
P粉043432210
2023-08-15 11:51:39
<p>あるページから別のページにデータを送信するのに非常に問題があります。ホームページに映画を表示する映画 Web サイトを開発しています。映画をクリックすると、レビューのある映画の詳細ページにアクセスしたいと考えています。実際、映画の詳細ページのコメント セクションでその映画に関連するコメントをフィルターしたいため、映画 ID を movie-detail.php ページに送信したいと考えています。これは、ホームページ内の映画ポスターをクリックしたときに、js ファイルの append を使用して作成されたものです。 </p>
<pre class="brush:php;toolbar:false;"><div class="映画ポスター" onclick="loadComments(${movie.id})" data-movie-id="${映画.id}">...
...</pre>
<p>この関数をトリガーします: </p>
<pre class="brush:php;toolbar:false;">functionloadComments(movieId){
$.post("/web/action/show-comments.php", { movieId });
}</pre>
<p>これは show-comments.php です:</p>
<pre class="brush:php;toolbar:false;"><?php
「../../db/db_conn.php」を含めます;
if(!isset($_SESSION)) session_start();
if(isset($_POST['movieId'])) $movieId = $_POST['movieId'];
$userId = $_SESSION['id'];
$sql = "SELECT * FROM レビュー WHERE movie_id="."$movieId"; #WHERE movie_id="."$movieId";
$result = pg_query($conn,$sql);
while ($row = pg_fetch_row($result)) { ?>
<div style="background-color: #aaa; パディング: 8px 16px; margin: auto; margin-bottom: 8px; border:1px ソリッドブラック; border-radius:10px; border-left:4px ソリッドブラック; width: 80%;">
<hr style="不透明度:0.9">
<p style="background-color: grey; padding: 16px; border-radius:10px">Commenter:<?php echo "$row[2]" ?></p>
<hr style="不透明度:0.9">
<p> <?php echo "$row[1]" ?></p>
</p>
<hr style="不透明度:0.9">
<span class="fa fa-star チェック済み"></span>
<span class="fa fa-star チェック済み"></span>
<span class="fa fa-star チェック済み"></span>
<span class="fa fa-star"></span>
<span class="fa fa-star"></span>
<hr style="不透明度:0.9">
</div>
<?php }
?></pre>
<p><code>show-comments.php</code> は <code>movie-detail.php</code> ページのコメント セクション div に含まれていますが、ページに入ろうとすると、 $movieId変数に関する未定義の配列キーエラーが常に表示されます。必要なのは映画IDだけです。 Cookie を使用したり、入力フィールドを非表示にしたり、さまざまなことを試しましたが、どれも機能しないようで、常にこのエラーが発生します。 <code>$_POST</code> 配列を出力しようとしましたが、空でした。私が何を間違えたのでしょうか? </p>
次の方法を試して、エラーがある場合は修正してください。 movieId がキーと値のペアとして適切にフォーマットされていないため、$.post() 関数を正しく使用していないと思います。 次の方法をお試しください。 リーリー