您当前的位置: 首页 > 学无止境 > 网站建设 网站首页网站建设
phpcms中下载频道获取下载次数
发布时间:2015-10-31 19:14:07编辑:雪饮阅读()
最近要做下载站,以前都是做文章站,下载站选用了phpcms,而在下载频道发现phpcms并没有自带的统计下载次数的标签调用。那么下面雪饮个人博客将给大家分享下如何获取下载次数:
首先我们需要在我们下载频道所对应的一个数据表中新增一个字段如下sql命令:
ALTER TABLE v9_download_data ADD `down_amount` int(10) unsigned NOT NULL DEFAULT '0'
然后在下载频道模版页引入一个js文件,该js文件是雪饮之前写好的一个方便使用原生ajax的文件,文件内容如下:
function getXmlHttpObject(){
var xmlHttpRequest;
if(window.ActiveXobject){
xmlHttpRequest=new ActiveXobject("Microsoft.XMLHTTP");
}
else{
xmlHttpRequest=new XMLHttpRequest();
}
return xmlHttpRequest;
}
function xygetid(id){
return document.getElementById(id);
}
var xmlHttpRequest;
if(window.ActiveXobject){
xmlHttpRequest=new ActiveXobject("Microsoft.XMLHTTP");
}
else{
xmlHttpRequest=new XMLHttpRequest();
}
return xmlHttpRequest;
}
function xygetid(id){
return document.getElementById(id);
}
然后我们创建两个方法,分别是获取下载次数和增加下载次数(当你点击下载的时候调用增加下载次数对应的方法):
var myXmlHttpRequest;
function getcont(){
myXmlHttpRequest=getXmlHttpObject();
if(myXmlHttpRequest){
var benwenid=document.getElementById("hiddenid").value;
var url="/api/xy/xyapi.php";
var data="id="+benwenid+"&type=select";
myXmlHttpRequest.open("post",url,true);
myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
myXmlHttpRequest.onreadystatechange=function chuli(){
if(myXmlHttpRequest.readyState==4){
if(myXmlHttpRequest.status==200){
document.getElementById("xydownloadcount").innerHTML=myXmlHttpRequest.responseText;
}
}
}
myXmlHttpRequest.send(data);
}
}
getcont();
function addonclick(){
myXmlHttpRequest=getXmlHttpObject();
if(myXmlHttpRequest){
var benwenid=document.getElementById("hiddenid").value;
var url="/api/xy/xyapi.php";
var data="id="+benwenid+"&type=add";
myXmlHttpRequest.open("post",url,true);
myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
myXmlHttpRequest.onreadystatechange=function chuli(){
if(myXmlHttpRequest.readyState==4){
if(myXmlHttpRequest.status==200){
}
}
}
myXmlHttpRequest.send(data);
}
}
function getcont(){
myXmlHttpRequest=getXmlHttpObject();
if(myXmlHttpRequest){
var benwenid=document.getElementById("hiddenid").value;
var url="/api/xy/xyapi.php";
var data="id="+benwenid+"&type=select";
myXmlHttpRequest.open("post",url,true);
myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
myXmlHttpRequest.onreadystatechange=function chuli(){
if(myXmlHttpRequest.readyState==4){
if(myXmlHttpRequest.status==200){
document.getElementById("xydownloadcount").innerHTML=myXmlHttpRequest.responseText;
}
}
}
myXmlHttpRequest.send(data);
}
}
getcont();
function addonclick(){
myXmlHttpRequest=getXmlHttpObject();
if(myXmlHttpRequest){
var benwenid=document.getElementById("hiddenid").value;
var url="/api/xy/xyapi.php";
var data="id="+benwenid+"&type=add";
myXmlHttpRequest.open("post",url,true);
myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
myXmlHttpRequest.onreadystatechange=function chuli(){
if(myXmlHttpRequest.readyState==4){
if(myXmlHttpRequest.status==200){
}
}
}
myXmlHttpRequest.send(data);
}
}
getcont()方法中“var benwenid=document.getElementById("hiddenid").value;”获取一个隐藏表单元素input的值,而这个input表单元素的值是从模版show_download.html中更新出来的当前下载资源的一个id号,该id号在模版中调用标签如下:
<input type="hidden" id="hiddenid" value="{$id}"/>
getcont()方法中“var url="/api/xy/xyapi.php";”指定一个ajax发送请求的文件路径,该php文件内容如下:
<?php
header("Content-type:text/html;charset=utf-8;");
$ljsjk=mysql_connect("localhost","root","root");
$xzsjk=mysql_select_db("phpcmsv9",$ljsjk);
$id=$_POST["id"];
$type=$_POST["type"];
//echo $id;
if($type=="select"){
$sql="select * from v9_download_data where id=$id";
$row=mysql_query($sql);
while($dsql=mysql_fetch_array($row)){
echo $dsql["down_amount"];
}
}
if($type=="add"){
$sql="update v9_download_data set down_amount=down_amount+1 where id=$id";
mysql_query($sql);
}
?>
header("Content-type:text/html;charset=utf-8;");
$ljsjk=mysql_connect("localhost","root","root");
$xzsjk=mysql_select_db("phpcmsv9",$ljsjk);
$id=$_POST["id"];
$type=$_POST["type"];
//echo $id;
if($type=="select"){
$sql="select * from v9_download_data where id=$id";
$row=mysql_query($sql);
while($dsql=mysql_fetch_array($row)){
echo $dsql["down_amount"];
}
}
if($type=="add"){
$sql="update v9_download_data set down_amount=down_amount+1 where id=$id";
mysql_query($sql);
}
?>
从上面可以看出该php接受不同的请求类型做出不同的响应,之前的两个js方法一个是查询请求,一个是新增请求
我们再次回到getcont方法中“document.getElementById("xydownloadcount").innerHTML=myXmlHttpRequest.responseText;”
该语句在ajax请求得到响应后将php从数据库中获取的下载次数赋给对应的显示下载次数的html元素上。
两个js方法中都有“var benwenid=document.getElementById("hiddenid").value;”该语句获取的id号是php文件所依赖而查询或新增的保障
由于新增的方法只能在点击下载按钮的时候才能触发,所以我们需要将此方法绑定于下载按钮上,可参考phpcms中下载频道页下载地址样式修改一文进行修改
好了,雪饮个人博客本次分享到此结束,希望能够帮到你。
关键字词:phpcms,下载频道,下载次数,个人博客