1

私はいくつかの PHP ページで最初の AJAX スクリプトに取り組んでいます。AJAX を使用するのは初めてで、ようやくスクリプトが機能するようになりました。私もJavascript初心者です。

ユーザーが図書館のカタログを検索し、書籍を選択してショッピング カートに追加できるようにする PHP Web サイトがあります。検索結果ページが更新されないように、「選択」リンクを AJAX 経由でロードするように変更しました。

AJAX の変更を完了するには、スクリプトへの AJAX リンクを持つテーブル セルごとに一意の ID を渡す必要があります。次のように $bookID 変数を使用して、PHP を使用してテーブル セルごとに一意の ID を生成しています。

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

一意の ID で動作するようにスクリプトを更新する必要があります。動作させるには、見つけたサンプル スクリプトを使用して、「selectRecord」という名前の ID にハードコーディングしました。これが私のスクリプトです:

function selectRecord(id) {
// 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="Selected";
}
}
// Open an asynchronous POST connection and send request
xmlhttp.open("POST", "selectRecord.php", true);
xmlhttp.send("id="+id);
return false;  // Do not follow hyperlink

この行を変更する必要があると思います:

document.getElementById("selectRecord").innerHTML="Selected";

ただし、各テーブル行セルの一意の ID を処理する構文がわかりません。

4

2 に答える 2

1

ID を getElementById 関数に渡すことができます。

document.getElementById("selectRecord" + id).innerHTML="Selected";
于 2013-08-01T16:18:56.613 に答える