0

ユーザーが図書館のカタログを検索し、書籍を選択してショッピング カートに追加できるようにする PHP Web サイトがあります。これはすべてうまく機能しますが、AJAX を検索結果テーブルに実装して、選択したレコードをカートに追加する別の php スクリプトを実行するリンクをクリックする代わりに、同じページ内でインラインでこれを行うようにしたいと考えています。これにより、レコードを「選択」したときに更新される検索結果ページが削除され、ページの上部にポップバックされます (ページの下部にいた場合は面倒です)。

リンクを使用して AJAX を実装する同様の例を見つけました - AJAX を使用するのはこれが初めてですが、ユーザーがリンクをクリックしても何も起こらないので行き詰まります。

これが私のスクリプトです:

function selectRecord() {
   // Allocate an XMLHttpRequest object
   if (window.XMLHttpRequest) {
      // IE7+, Firefox, Chrome, Opera, Safari
      var xmlhttp=new XMLHttpRequest();
   } else {
      // IE6, IE5
      var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
   // Set up the readyState change event handler
   xmlhttp.onreadystatechange = function() {
      if ((this.readyState == 4) && (this.status == 200)) {
         document.getElementById("selectRecord").innerHTML=xmlhttp.responseText;
      }
   }
   // Open an asynchronous POST connection and send request
   xmlhttp.open("POST", "selectRecord.php", true);
   return false;  // Do not follow hyperlink
}

リンク付きのテーブルセルは次のとおりです。

<td class="hidden-narrow" id="selectRecord">
                <?php
                if (in_array($bookID, $_SESSION['selectedBooks'])) {
                    echo "Selected";
                } else {
                echo '<a href="select" onclick="return selectRecord()" class="center">Select</a>';
                }
                ?>
                </td>

私が求めている結果がテーブルセルのリンク (「選択」) であるかどうかが明確でない場合 - ユーザーがこのリンクをクリックすると、selectRecord.php スクリプトが実行され、「選択済み」またはエラーメッセージが表示されます (存在する場合)。エラーでした。現在、ユーザーが [選択] リンクをクリックしても何も起こりません。

また、$bookID PHP 変数を AJAX スクリプトに渡す方法を考え出す必要があります。これにより、selectRecord.php がカートに追加する書籍 ID を認識できるようになります。

4

1 に答える 1