跟踪点击网页上每个链接的次数

时间:2016-12-31 14:13:03

标签: javascript php mysql

我有一个循环,回显从数据库中提取的链接列表,但我想跟踪列出的每个链接点击的次数。

形式

link1
link2
link3
link4
link5

link1 (2)
link2 (7)
link3 (3)
link4 (4)
link5 (1)

因此,每次点击链接1时,都应记录点击链接1的次数,并显示在链接旁边。

这是我到目前为止的代码。

echo "<table>";
while($row = mysql_fetch_array($result)){   
//echo "<tr><td>" . $row['title'] . "</td><td>" . $row['url'] . "</td></tr>"; 
echo "<tr><td> <a href='" . $row['url'] . "' ' target='_blank'>" . $row['title'] . "</a> </td></tr>";
}
echo "</table>"; 

2 个答案:

答案 0 :(得分:0)

您可以使用javascript函数管理所有clics

&#13;
&#13;
var counter = {};

function manageClicks(url) {
	if (! counter[url]) counter[url] = 0;
	counter[url] ++;
	alert('you clicked '+counter[url]+' '+url);
 
    // return location.href = url;
	return false;
}
&#13;
<p>
Click some link:
</p>
<a href="#" onclick='manageClicks("url1")'> url1 </a><br>
<a href="#" onclick="manageClicks('url2')"> url2 </a><br>
<a href="#" onclick="manageClicks('url3')"> url3 </a><br>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你可以做这样的事情来持久保存它。这只是一个基本的想法,只需要一些代码。我做了测试它。

此外,您需要映射到您的链接和唯一ID以在您的数据库中获取正确的单元格。

前端的东西:

<a href="http://yoururl.com/" onclick="handleLinkClick(this, 'a-unique-id')">
    Your link <span class="counter">(<?php echo getLogCount('a-unique-id') ?></span>)
</a>

现在,如果用户点击该链接,您可以执行以下操作:

function handleLinkClick(element, urlId) {
    $.ajax({
        url: '/logurl.php',
        method: 'POST',
        data: {
           id: urlId
        }
    });

    // Count up immediately. You could also wait for a valid response. 
    var counterEl = element.querySelector('.counter');
    var currentCount = parseInt(counterElement.innerHTML);

    counterEl.innerHTML = (currentCount + 1).toString();
}

后端的东西:

对于&#34; getLogCount&#34;你可以定义一个函数,它返回数据库中的点击(用PHP):

function getLogCount($urlId) {
    $result = 0;

    // @todo: Request to the database and get the count of the "$urlId".
    // And save the result it in "$result"

    return $result;
} 

现在,在数据库中记录用户点击你的&#34; logurl.php&#34;文件可能如下所示:

$urlId = intval($_POST['id']);

// @todo: Update/Create a new entry in the database for the urlId.
// Maybe the columns could look something like: urlId (unique), clicks

我希望这会对你的问题有所帮助。