帝国cms后台发信息最怕点击提交后,提示标题重复又要从头写一遍。现在给咱们共享一款实时验证标题的办法,这样就能够防止呈现重复的信息。
帝国CMS-AJAX验证标题是否重复办法
1、帝国cms后台 - 办理数据表 - 找到自己运用的数据表 - 修正title字段 - 输入表单运用下面的代码
找到代码
<inputtype=textname=titlevalue="<?=ehtmlspecialchars(stripSlashes($r[title]))?>"size="60">
替换为
<inputtype=textname=titlevalue="<?=ehtmlspecialchars(stripSlashes($r[title]))?>"size="60"onblur="checkTitle()">
在输入表单最下面参加如下代码
<scripttype="text/javascript"src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.min.js"></script> <scripttype="text/javascript"> functioncheckTitle() { varclassid=<?=$_GET[classid]?>; varid=<?=$_GET[classid]?>; vartit=document.add.title.value; console.log("我是标题="+tit); console.log("我是classid="+classid); console.log("我是id="+id); $.ajax({ url:'ReTitleAjax.php?classid='+classid+'&id='+id+'&title='+tit, dataType:"json", cache:false, error:function(){ alert("检测失利,请重试"); }, success:function(data){ if(data==1){ alert('重复标题'); } if(data==0){ //alert('能够增加信息'); console.log("能够增加信息"); } } }); } </script>
接着新建一个php文件,保存在 /e/admin/ReTitleAjax.php ,代码如下
define('EmpireCMSAdmin','1'); require("../class/connect.php"); require("../class/db_sql.php"); require("../class/functions.php"); requireLoadLang("pub/fun.php"); require("../data/dbcache/class.php"); $link=db_connect(); $empire=newmysqlquery(); $editor=1; //验证用户 $lur=is_login(); $logininid=$lur['userid']; $loginin=$lur['username']; $loginrnd=$lur['rnd']; $loginlevel=$lur['groupid']; $loginadminstyleid=$lur['adminstyleid']; $classid=(int)$_GET['classid']; $id=(int)$_GET['id']; $title=AddAddsData($_GET['title']); $where=''; if($id) { $where='andid<>'.$id; } //已审阅 $num=$empire->gettotal("selectcount(*)astotalfrom{$dbtbpre}ecms_".$class_r[$classid][tbname]."wheretitle='".addslashes($title)."'".$where."limit1"); //未审阅 if(emptyempty($num)) { $num=$empire->gettotal("selectcount(*)astotalfrom{$dbtbpre}ecms_".$class_r[$classid][tbname]."_checkwheretitle='".addslashes($title)."'".$where."limit1"); } echojson_encode($num);
上面是选用post查询回来json成果的方法来实现查重,咱们还能够经过get方法,js函数如下:
<scripttype="text/javascript"> functioncheckTitle() { varclassid='<?=$_GET[classid]?>'; varid='<?=$_GET[id]?>'; vartit=document.add.title.value; varanswerurl='ReTitleAjax.php'; $.get(answerurl+"?classid="+classid+'<?=$ecms_hashur['ehref']?>&title='+tit,function(data){ if(data){ if(data==1){ $("#titletips").html("<fontcolor='red'>现已存在此称号,请查看是否现已增加过</font>"); } else{ $("#titletips").html("<fontcolor='green'>能够增加信息</font>"); } returnfalse; } else{ $("#titletips").html("<fontcolor='red'>检测失利,请重试</font>"); } }); } </script>
接着在title字段的input后放一个容器用于存储提示信息,例如<span id="titletips"></span>,还能够经过在呈现重复时禁用其他input输入等方法来约束,这儿仅仅给出原理,咱们可在此基础上发挥。
声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系邮箱:123456@qq.com 我们将配合处理!
原文地址:帝国cms二次开发AJAX验证标题是否重复发布于2022-06-16 07:43:56