你可以这样做(未经测试):
定义一个javascript变量来跟踪点击功能之外的点击顺序:
var order = 0;
将其添加到您的点击功能中,位于底部:
order++;
var sessionID = $("input[name='sessionID']").val(); // assuming you have sessionID as the value of a hidden input
var query = $("#query").text(); // if 'query' is the id of your searchbox
var pos = $(this).index() + 1; // might have to modify this to get correct index
$.post("logClick.php", {sessionID:sessionID, query:query, pos:pos, order:order});
在你的PHP脚本名为“logClick.php”(在同一目录中):
// GET AJAX POSTED DATA
$str_sessionID = empty($_POST["sessionID"]) ? '' ; $_POST["sessionID"];
$str_query = empty($_POST["query"]) ? '' ; $_POST["query"];
$int_pos = empty($_POST["pos"]) ? 1 ; (int)$_POST["pos"];
$int_order = empty($_POST["order"]) ? 1 ; (int)$_POST["order"];
// CONNECT TO DATABASE
if ($str_sessionID && $str_query) {
require_once "dbconnect.php"; // include the commands used to connect to your database. Should define a variable $con as the mysql connection
// INSERT INTO MYSQL DATABASE TABLE CALLED 'click_logs'
$sql_query = "INSERT INTO click_logs (sessionID, query, pos, order) VALUES ('$str_sessionID', '$str_query', $int_pos, $int_order)";
$res = mysql_query($sql_query, $con);
if (!$res) die('Could not connect: ' . mysql_error());
else echo "Click was logged.";
}
else echo "No data found to log!";
?>
如果要查看脚本中是否发生错误,可以添加回调函数作为$.post()ajax方法的第三个参数:
$.post("logClick.php", {sessionID:sessionID, query:query, pos:pos, order:order},
function(result) {
$('#result').html(result); // display script output into a div with id='result'
// or just alert(result);
})
);
编辑:如果您需要在页面加载之间保持order变量的值,因为您对结果进行了分页,那么您可以使用GET或POST在页面之间传递此变量的值.然后,您可以将值保存在隐藏的输入中,并使用jQuery轻松读取它. (或者你也可以使用cookies).
示例(将其放在每个结果页面中):
$order = empty($_POST["order"]) ? $_POST["order"] : "0";
$html="
\n";echo $html;
?>
在你的jQuery中,只需更改var order = 0;至
var order = $("input[name='order']").val();
然后,当用户单击页面链接时,阻止默认链接操作,设置订单值和表单操作,然后使用javascript / jQuery提交表单:
$("a.next_page").click(function(event) {
event.preventDefault();
var url = $(this).attr("href");
$("input[name='order']").val(order);
$("#form_session").attr('action', url).submit();
});
所有“下一个”和“前一个”分页链接必须被赋予相同的类(即“next_page”(在此示例中).
编辑:如果你的分页如下:
然后改变这个:
$("div.pagination a").click(function(event) {
etc.