我有一个循环,回显从数据库中提取的链接列表,但我想跟踪列出的每个链接点击的次数。
形式
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>";
答案 0 :(得分:0)
您可以使用javascript函数管理所有clics
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;
答案 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
我希望这会对你的问题有所帮助。