2011-12-14 2 views
1

я пытаюсь реализовать следующий код:вести учет количества кликов по внешней ссылке или внутренней ссылке на странице

<a href = "http://www.google.com"/ id="external">go to google</a> 
    <span id="num1"></span>// to show the number of clicks so far. 
    <a href = "index.php" id="internal">go to home</a> 
    <span id="num2"></span>>// to show the number of clicks so far. 


<script> 
    $(document).ready(function() { 
    var count1=0; 
    var count2=0; 
    $("#external").click(function(){ 
     count1++; 

    }); 
$("#num1").html(count1); 
    $("#internal").click(function(){ 
     count2++ 
    }); 
    $("#num2").html(count2); 

    }); 

</script> 

Я не уверен, что я сделал выше прав с целью отслеживая количество кликов по каждой ссылке, и проблема в том, что когда страница загружается снова, переменная count будет сброшена на 0, мне интересно, нужно ли мне вставлять переменную count в базу данных или еще эффективнее способ сделать это, любой может помочь мне в этом, любая помощь будет принята с благодарностью!

+0

должен быть где-то хранить, в настоящее время вашего хранения счетчика на пользователях браузер. –

ответ

1

Вы можете привет-Джек click событие для ссылок, останавливая нормальный поток, отправив запрос AJAX к вашему разъединяет войти щелчок, а затем перенаправить пользователя на запрашиваемый URL:

$('#external, #internal').on('click', function (event) { 
    var url = $(this).attr('href'); 
    event.preventDefault(); 
    $.get('path/to/server-side.php', { 'vote' : url }, function (serverResponse) { 
     window.location = url; 
    }); 
}); 

Обратите внимание, что .on() является новым в jQuery 1.7 и в этом случае совпадает с .bind().

Вы также можете выбрать все ссылки:

$('a')... 

Или вы можете добавить класс к ссылкам, которые вы хотите, чтобы войти

$('.log-this-link')... 
1

Javascript будет «перезагружен» каждый раз при загрузке страницы. Чтобы отслеживать клики, вам нужно будет хранить данные в базе данных.

+0

Можете ли вы показать мне, как в php? благодаря! Я предполагаю использовать «mysql_query (« insert into values1 values ​​('count1 »), но что javascript varible count1 не может быть в запросе базы данных. – smith

Смежные вопросы