我用thinkphp做文章点击量,用ajax怎么实现,下面代码怎么调用在模板里
我用thinkphp做文章点击量,用ajax怎么实现,下面代码怎么调用在模板里我是在需要模板调用这个方法吗这放在控制器里的//ajax设置点击量publicfunctio...
我用thinkphp做文章点击量,用ajax怎么实现,下面代码怎么调用在模板里我是在需要模板调用这个方法吗
这放在控制器里的
// ajax设置点击量
public function set_hits(){
if(!$_GET['id']){
return;
}
M('news')->where("sw_id = '{$_GET['id']}'")->setInc('vel');
}
这放在模板里
<script>
var ajax;
if(window.XMLHttpRequest){
ajax = new XMLHttpRequest();
}else{
ajax = new ActiveXObject('Microsoft.XMLHTTP');
}
ajax.open('GET','__MODULE__/Index/set_hits/id/{$_GET['id']}',true);
ajax.send();
</script> 展开
这放在控制器里的
// ajax设置点击量
public function set_hits(){
if(!$_GET['id']){
return;
}
M('news')->where("sw_id = '{$_GET['id']}'")->setInc('vel');
}
这放在模板里
<script>
var ajax;
if(window.XMLHttpRequest){
ajax = new XMLHttpRequest();
}else{
ajax = new ActiveXObject('Microsoft.XMLHTTP');
}
ajax.open('GET','__MODULE__/Index/set_hits/id/{$_GET['id']}',true);
ajax.send();
</script> 展开
2个回答
展开全部
一般情况下,做文章点击量+1。在服务端做就可以了。
用户访问url时,是访问的控制器,在读取文章的同时,把文章的点击量+1就可以了。
不需要做异步处理。
使用异步会增加这件事情的成本,而且还容易造成问题。比如用户的浏览器禁止JavaScript。这个用户无论打开多少次文章。数量也不会+1,根本就无法发送请求。
另外,说点题外话:
看的代码,你应该使用的是thinkphp3.2版本。
获取客户端提交的数据,不要直接使用$_GET或者$_POST。因为这样的方式获取数据是没有被过滤的,所以很不安全,会有sql注入的风险。thinkphp3.2提供了I函数。比如你获取get提交过来的id。直接I('get.id');就可以了。
追问
好的 谢谢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询