:
少し例、クリック上:
$.post(
'count_click.php',
{ id: "someid" },
function(data) {
// data = everything the php-script prints out
});
PHPの
はの順序を追跡するために、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});
を「logClick.php」と呼ばれるPHPスクリプトでは(同じディレクトリ内):
<?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);
})
);
EDIT:あなたはpersiするための変数の値が必要な場合あなたが結果を改ページしたためにページロードの間にstを使用した場合、この変数の値をGETまたはPOSTのいずれかを使用してページ間に渡すことができます。隠し入力に値を保存し、jQueryで簡単に値を読み取ることができます。 (または、クッキーを使用することもできます)。
例(すべての結果のページでこれを置く):あなたのjQueryで
<?php
$order = empty($_POST["order"]) ? $_POST["order"] : "0";
$html="<form id='form_session' action='' name='form_session' method='POST'>
<input type='hidden' name='order' value='$order'>
</form>\n";
echo $html;
?>
を、ユーザがページのリンクをクリックしたときにだけ、その後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'と 'previous'ページネーションリンクには同じクラス(この例では 'next_page')を指定する必要があります。
EDIT:次のようにあなたのページネーションの場合:
<div class='pagination'>
<ul><li><a href='page1.url'>1</a></li>
<li><a href='page2.url'>2</a></li>
</ul>
</div>
そしてちょうどこの変更:あなたは予算を持っており、車輪の再発明をしないことを希望する場合
$("div.pagination a").click(function(event) {
etc.
を、私は、httpをお勧めします:/ /www.clicktale.com – AlienWebguy
興味深い。私はむしろそれを自分で構築したいと思う。データベースの設定と学習アルゴリズムが既に用意されているので、ユーザーが何をクリックしているかを確認する方法を見つけるだけです。しかし、提案していただきありがとうございます! – Jon
AJAXを使用してください! http://api.jquery.com/jQuery.ajax/ –