帝国cms后台播发信息最害怕点击提交后,提示标题重复又要重新写下一遍。现在给大家分享一款实时检验标题的方法,这样就可以避免出现重复的信息。
帝国CMS-AJAX验证标题与否重复方法
1、帝国cms后台 - 管理数据表 - 找出自己采用的数据表 - 修正title字段 - 输入表单采用下面的代码
找到代码
"size="60">
替代为
"size="60"onblur="checkTitle()">
在输出表单最下面重新加入如下代码
接着新建一个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=' and id<>'.$id; } //已审核 $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where title='".addslashes($title)."'".$where." limit 1"); //未审核 if(emptyempty($num)) { $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid][tbname]."_check where title='".addslashes($title)."'".$where." limit 1"); } echojson_encode($num);
上面是采用post查询返回json结果的方式去实现查重,我们还可以通过get方式,js函数如下:
接着在title字段的input后放一个容器用作存储提示信息,例如,还可以通过在发生重复时停止使用其他input输入等方式去管制,这里只是得出原理,大家可以在此基础上充分发挥。