不用ajax实现点击文字即可编辑的方法,Ajax实现对

时间:2019-08-07 23:34来源:亚洲城ca88唯一官方网站
刚接触creatElement ,appendChild 等东东!呵呵! 正文实例陈说了Ajax达成对静态页面包车型大巴篇章访谈总结成效。分享给大家供大家参照他事他说加以考察,具体如下: 上面就享受一段

刚接触creatElement ,appendChild 等东东!呵呵!

正文实例陈说了Ajax达成对静态页面包车型大巴篇章访谈总结成效。分享给大家供大家参照他事他说加以考察,具体如下:

上面就享受一段相对完好的能够在实质上运用中派上用场的代码,此代码是ajax结合php代码完结的。

写了这些事物,可能在大师看来,特别的稚气!可是完全自身写的!

眼看,静态页面不唯有速度快,并且对seo也会有早晚的支援。下三个月,写了一帖有关《在SAE平台达成WordPress页面纯静态化至KVDB》。笔者本身行使了一段时间后,发掘提速确实很醒目。然则随之而来的八个标题正是,由于文章静态化后,页面并不会通过WordPress程序的拍卖,那样就导致了稿子的访问量总结失效。当然,有四个叫作wp-postview的插件是足以缓慢解决那个难点的,然则自身不是很喜欢插件,因为会拖慢全体的快慢。所以那边就交付三个减轻方案,就是行使Ajax来贯彻总计,同样是依照SAE平台的。

一.ajax代码如下:

还未有两全,请英雄引导!!

概念小说访问总计类

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<title>ajax实现浏览量点击增加</title>
<script type="text/javascript">
var xmlhttp=false;
function add(){
 try{
  xmlhttp= new XMLHttpRequest;
 }
 catch(e){
  xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
 }

 xmlhttp.open('GET','count.php?a=a',false);
 xmlhttp.onreadystatechange=func;
 xmlhttp.send(null);
}

function func(){
 if(xmlhttp.readyState==4){
  var msg=xmlhttp.responseText;
  var tt=document.getElementById("num");
  tt.innerHTML=msg;
 }
}
</script>
</head>
<body>
当前页面数据库中访问次数:<div id='num'></div>
<input type="button" value="增加次数" >
</body>
</html>

看代码

以此实际上在自己前边的帖子里面早就有关联过了KVDB TaskQueue实现快捷计数器,对那么些做轻便修改就可以。由于不经过php管理,所以就无法使用队列服务来计数。一样定义计数类,何况放置网址根目录下:

二.php代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
 <HEAD> 
 <TITLE> New Document </TITLE> 
 <style> 
 .test{border:1px solid #ccc;background-color:#eee;width:200px;height:60px;} 
 </style> 
 <script language="javascript"> 
 <!-- 
 function isIE(){ //ie? 
  if (window.navigator.userAgent.indexOf("MSIE")>=1) return true; 
  else return false; 
} 
if(!isIE()){ //firefox innerText define 
  HTMLElement.prototype.__defineGetter__("innerText", 
    function(){ 
      return this.textContent; 
    } 
  ); 
  HTMLElement.prototype.__defineSetter__("innerText", 
    function(sText){ 
      this.textContent=sText; 
    } 
  ); 
}function $(e){ 
  return document.getElementById(e); 
 } 
 var arr=new Array(); 
 function check(e){ 
 var v=0; 
  for(i=0;i<arr.length;i  ) 
  {if(arr[i]==e) v=1; 
  else v=0;} 
  if(v) return true; 
  else return false; 
 } 
 function edit(e){ 
  var x=$(e); 
  var str=x.innerText; 
  if (check(e)) 
  { 
    //alert("已经存在在数组里!"); 
    //alert(str); 
    var b=$(e "fa"); 
    str=$(e "faz").value; 
    b.removeChild($(e "faz")); 
    x.innerText=str; 
  }else{ 
    //alert("没有存在在数组里!"); 
    a1=document.createElement("div"); 
    a1.id=e "fa"; 
    a=document.createElement("INPUT"); 
    a.name=e; 
    a.id=e "faz"; 
    a.value=str; 
    x.innerHTML=""; 
    x.appendChild(a1); 
    a1.appendChild(a); 
    if(arr.length==0) arr[0]=e; 
    else arr[arr.length]=e; 
    //alert(a.name); 
  } 
 } 
 --> 
 </script> 
 </HEAD> 
 <BODY> 
 <div class="test" id="test" onclick="edit('test')">可编辑的内容</div> 
 <div class="test" id="test1" onclick="edit('test1')">可编辑的内容</div> 
 </BODY> 
</HTML>
$countkey=$_GET['key'];//获取要操作的计数key
if($countkey=="") exit;
if($_GET['action']=="add"){
  $cou=new counter($countkey);
  $cou->inc();//计数key对应的值加1
}elseif($_GET['action']=="get"){
  $cou=new counter($countkey);
  echo $cou->get();
}
class counter {
  private $kvdb;
  private $key;
  public function __construct($key){
    $this->kvdb=new CKvdb();
    $this->key=$key;
  }
  public function inc(){
    $num=$this->kvdb->get($this->key) 1;
    $this->kvdb->set($this->key,$num);
    return $num;
  }
  public function dec(){
    $num=$this->kvdb->get($this->key)-1;
    $this->kvdb->set($this->key,$num);
    return $num;
  }
  public function get(){
    $num=$this->kvdb->get($this->key);
    return intval($num);
  }
}
class CKvdb //这个类封装的kvdb操作。
{
  private $db;
  function __construct(){
    $this->db=new SaeKv();
    $this->db->init();
  }
  public function set($key,$value)
  {
    $this->db->set($key,$value);
  }
  public function get($key)
  {
    return $this->db->get($key);
  }
}
<?php
 mysql_connect('localhost','root','');
 mysql_selectdb('click');
 $rs=mysql_query("UPDATE click SET num = num  1 WHERE name = '".$_GET['a']."'");
 if(mysql_affected_rows()==1){
  $rs=mysql_query("select * from click where name='".$_GET['a']."'");
  $row=mysql_fetch_array($rs);
  echo $row['num'];
 }
?>

终极化解浏览器难题的代码

增加计数代码

以上所述就是本文的全体内容了,希望我们能够喜欢。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
 <HEAD> 
 <TITLE> New Document </TITLE> 
 <style> 
 body{font-size:14px;} 
 input{border:none;font-size:14px;} 
 .show{border:1px solid #ccc;background-color:#eee;width:150px;height:20px;} 
 .hide{border:1px solid #ccc;background-color:#eee;width:150px;height:20px;display:none;} 
 </style> 
 <script language="javascript"> 
 <!-- 
 function $(e){ 
  return document.getElementById(e);//封装获取函数 
 } 
 function edit(e){ 
    //parseInt 
    $(e).style.display="none"; 
    $(e "fm").style.display="block"; 
    $(e "fm").childNodes[0].focus(); //div的子元素自动获得焦点 
 } 
 function hide(e){ 
    //parseInt 
    $(e).style.display="none"; 
    $(e=e.replace("fm","")).style.display="block"; 
 } 
 --> 
 </script> 
 </HEAD> 
 <BODY> 

在你的小说内容页面,增多如下的Ajax央求代码,该代码是基于jQuery的:

你或者感兴趣的稿子:

  • 毫不ajax达成点击文字就可以编辑的法门
  • php ajax网址浏览总计功用的简练完结
  • Jquery AJAX 用于总结点击率(总计)
  • ajax完成点击不一致的链接让重返的开始和结果浮未来一定div里

 唉!!忙了一晚间,就那样化解了!!嘻嘻  呵呵 

var keyTemp = $('#postTemp').text();
$.get('http://localhost/counter.php',{ action:'add',key:keyTemp });
$.get('http://localhost/counter.php',{ action:'get',key:keyTemp },function(data){
    $('#view').text(data ' Views');
});
郁闷!<br> 
<font color=red><b>在firefox下 由于DOM有很小的差异,含有input的div中除标签内的空格外</b></font><br> 
<font color=red><b>不能有空格因为我们用的是childNodes[0]!否则需要点两下!</b></font> 
 <div> 
 <div class="show" id="test" onclick="edit(this.id)">可编辑的内容一</div> 
 <div class="hide" id="testfm"><input type="text" name="nn" value="可编辑的内容一" onBlur="hide(this.parentNode.id)" /></div> 
 <div class="show" id="test1" onclick="edit(this.id)">可编辑的内容二</div> 
 <div class="hide" id="test1fm"><input type="text" name="nn" value="可编辑的内容二" onBlur="hide(this.parentNode.id)" /></div> 
 <div class="show" id="test2" onclick="edit(this.id)">可编辑的内容三</div> 
 <div class="hide" id="test2fm"> 
  <input type="text" name="nn" value="可编辑的内容三" onBlur="hide(this.parentNode.id)" > 
 </div> 
 <div class="show" id="test3" onclick="edit(this.id)">可编辑的内容四</div> 
 <div class="hide" id="test3fm"> 
  <input type="text" name="nn" value="可编辑的内容四" onBlur="hide(this.parentNode.id)" > 
 </div> 
 </div> 
 </BODY> 
</HTML>

keyTemp变量正是文章的外号,即存入KVDB中的键。小编把该健存到多个遮蔽的div身上,然后在采用Ajax的时候去猎取该div的开始和结果。Ajax中第一个get就是去拜候counter.php计数类,而且带上参数,达成访谈加1. 次之个get就是取访谈值了,把取到的值放到对应的地方中去。

以上所述是作者给大家介绍的永不ajax达成点击文字就能够编辑的方法,希望对大家全数帮衬,假使我们有任何难题迎接给自己留言,作者会及时恢复生机我们的!

越来越多关于PHP相关内容感兴趣的读者可查阅本站专项论题:《PHP ajax技能与行使小结》、《PHP运算与运算符用法总结》、《PHP互连网编制程序技能总计》、《PHP基本语法入门教程》、《php操作office文书档案手艺计算(满含word,excel,access,ppt)》、《php日期与时间用法总括》、《php面向对象程序设计入门教程》、《php字符串(string)用法总计》、《php mysql数据库操作入门教程》及《php常见数据库操作能力汇总》

你大概感兴趣的小说:

  • php ajax网址浏览总计作用的简练完成
  • Jquery AJAX 用于总计点击率(计算)
  • ajax达成点击差别的链接让再次来到的从头到尾的经过展现在特定div里
  • php ajax达成的点击浏览量加1

期望本文所述对我们PHP程序设计有所扶助。

您或者感兴趣的篇章:

  • Jquery AJAX 用于总计点击率(总括)
  • php ajax网址浏览计算功用的简要实现
  • asp ajax达成静态页面分页的代码
  • php的ajax轻巧实例
  • ThinkPHP中利用ajax接收json数据的点子
  • php AJAX POST的运用实例代码
  • php,ajax完成分页
  • php ajax jquery完结点击加载越来越多内容
  • php mysql结合Ajax完毕点赞作用一体化实例
  • php ajax达成无刷新动态加载数据技艺

编辑:亚洲城ca88唯一官方网站 本文来源:不用ajax实现点击文字即可编辑的方法,Ajax实现对

关键词: 亚洲城ca88