看起来很简单。我正在创建一个搜索引擎,以分页的方式将结果返回给用户。每个结果都显示在一个列表中,如果用户点击任何特定结果,它会扩展出手风琴风格并向他们显示更多信息。
我想在我的搜索排名中实现一些学习,因此我将跟踪用户点击的结果以及点击它们的顺序。
我已经可以跟踪一个页面上的点击次数。每次用户点击结果时,它都会存储在一个包含我需要的所有信息的数据库中。
这是我的问题:如果用户转到结果的下一页,我会丢失当前的点击次数。我使用jQuery计算点击次数 - 每次用户点击结果时,点击次数会增加,结果,结果在列表中的实际排名以及当前点击次数会作为单行添加到数据库中。< / p>
那么我怎样才能保持点击次数?
这是我的点击功能,其中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的新手。
如有必要,请告知我们您是否希望我发布任何其他代码。
答案 0 :(得分: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回声变成了什么。