十分に単純に思えます。ページ分割された方法でユーザーに結果を返す検索エンジンを作成しています。各結果はリストに表示され、ユーザーが特定の結果をクリックすると、アコーディオン スタイルで展開され、詳細情報が表示されます。
検索ランキングに何らかの学習を実装したいので、ユーザーがクリックした結果と、クリックされた順序を追跡します。
1 つのページのクリック数を既に追跡できます。ユーザーが結果をクリックするたびに、必要なすべての情報とともにデータベースに保存されます。
これが私の問題です。ユーザーが結果の次のページに移動すると、現在のクリック数が失われます。jQuery を使用してクリック数をカウントしています。ユーザーが結果をクリックするたびに、クリック数が増加し、結果、リスト内の結果の実際のランク、および現在のクリック数が 1 つの行としてデータベースに追加されます。
では、どうすればクリック数を保持できますか?
これが私のクリック関数です。js/clicklog.php は、クエリがデータベースに送信される場所です。
var order = 0;
$(document).ready(function() {
alert(order);
$('.accordionButton').click(function(e) {
if($(this).next().is(':hidden') == true) {
$(this).addClass('on');
$(this).next().slideDown('normal');
$(this).next().slideDown(test_accordion);
order++;
var actualOrder = $(this).find("h3").eq(0).text();
var major = $(this).find("h3").eq(2).text();
var sessionID = $("#sessionID").text();
$.post("js/clicklog.php", {sessionID:sessionID, major:major, actualOrder:actualOrder, order:order});
}
sessionID は、$_SESSION['id'] から設定された、ページ上の非表示の div から取得されています。クリック数についても同様のことができると思いますか?
機能しない理由は理解していますが、jQuery、PHP、および AJAX にはまだ慣れていないため、修正方法が思い浮かびません。
必要に応じて、他に掲載してほしいコードがあればお知らせください。