我想实现一个下载计数器,这样每次用户点击下载按钮时,表单中的下载编号值都会递增。
这是我的按钮声明:
<a id='id' onclick='Increment()' href='/folder/"+rfilename+"' download></a>
这是我要修改的标签:
<label id = 'dlCounter'><b> Number of Downloads : 0</b></label>
这是我的功能:
<script>
function Increment()
{
var downloadCounter = $("#dlCounter").text(); //get current value
var number = downloadCounter.replace( /^\D+/g, ''); //remove non digits
var number = parseInt(number);
number = number+1;
var string = "Number of Downloads : "+number;
$("#dlCounter").text(string);
$("#dlCounter").css("font-weight","Bold");
//send modifications to the server
$.ajax({
type: 'POST',
url: '{$action}',
data: $('#dlCounter').serialize(),
success: function(d) {
console.log("Successful", d);
},
error: function() {
console.log("Unsuccessful");
}
});
}
</script>
计数器实际上正在递增,但它只在本地,一旦我关闭窗口并返回到窗体,值重置为0,我怎样才能在每次点击时将修改发送到服务器?
我认为ajax部分会这样做,但它不起作用。然而,当我查看我的控制台时,我得到了成功的消息,然后是我的整个表单代码(d变量)。
我错过了什么?
我认为最好将此值存储在数据库中,但所有内容都保存在表单中。