0

看起来很简单。我正在创建一个以分页方式将结果返回给用户的搜索引擎。每个结果都显示在一个列表中,如果用户单击任何特定结果,它会展开手风琴风格并向他们显示更多信息。

我想在我的搜索排名中进行一些学习,所以我将跟踪用户点击的结果,以及他们被点击的顺序。

我已经可以跟踪一页的点击次数。每次用户单击结果时,它都会存储在数据库中,其中包含我需要的所有信息。

这是我的问题:如果用户转到下一页结果,我会丢失当前的点击次数。我正在使用 jQuery 计算点击次数 - 每次用户点击结果时,点击次数都会增加,结果、结果在列表中的实际排名以及当前点击次数作为单行添加到数据库中。

那么如何保持点击次数呢?

这是我的点击函数,其中 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 是从页面上的隐藏 div 中提取的,该 div 由 $_SESSION['id'] 设置。我想我可以为点击次数做类似的事情吗?

我明白为什么它不起作用,但我只是想不出如何解决它的解决方案,因为我对 jQuery、PHP 和 AJAX 还是很陌生。

如有必要,如果您希望我发布任何其他代码,请告诉我。

4

1 回答 1

1

您可以将其放入 PHP 会话变量中

<?php
session_start();

if(isset($_SESSION['views']))
{
$_SESSION['views']=$_SESSION['views']+1;
}
else
{
$_SESSION['views']=1;
echo "Views=". $_SESSION['views'];
}
?>

您可能会发送到 clicklog.php 文件,您将在其中拥有会话变量并递增它,然后返回它如何返回 sessionID

从评论更新你需要做的是在你的 jquery 中发送一个 ajax 请求

 var count = 2;
     $.ajax({
   type: "GET",
   url: "some.php",
   data: ({'count' : count}),
   success: function(msg){
     alert( "Data Saved: " + msg );
   }
 });

然后通过 post 方法接收它,或者如果您选择这种方式,则获取它,然后处理将 1 添加到变量并返回它。提示任何 php 回声变成味精。

于 2012-04-04T21:45:57.427 回答