我有一个循环,回显从数据库中拉出的链接列表,但我想跟踪列出的每个链接被点击的次数。
表格
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>"; 发布于 2016-12-31 22:47:36
您可以使用javascript函数来管理所有逻辑
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;
}<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>
发布于 2017-01-01 00:33:03
您可以这样做来持久地保存它。这只是一个包含少量代码的基本想法。我没有对它进行测试。
此外,您还需要到您的链接的映射和唯一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();
}后端的东西:
对于"getLogCount“,您可以定义一个函数,该函数返回数据库中的点击(使用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;
} 现在,要在数据库中记录用户的点击,您的"logurl.php“文件可能如下所示:
$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我希望这能对你解决你的问题有所帮助。
https://stackoverflow.com/questions/41409012
复制相似问题