帝国cms二次开发AJAX验证标题是否重复
帝国cms后台发信息最怕点击提交后,提示标题重复又要重新写一遍。现在给大家分享一款实时验证标题的方法,这样就可以避免出现重复的信息。
帝国CMS-AJAX验证标题是否重复方法
1、帝国cms后台 – 管理数据表 – 找到自己使用的数据表 – 修改title字段 – 输入表单使用下面的代码
找到代码
<inputtype=textname=titlevalue=<?=ehtmlspecialchars(stripSlashes($r[title]))?>size=60>
替换为
<inputtype=textname=titlevalue=<?=ehtmlspecialchars(stripSlashes($r[title]))?>size=60onblur=checkTitle()>
在输入表单最下面加入如下代码
<script type=text/javascriptsrc=http://apps.bdimg.com/libs/jquery/1.9.0/jquery.min.js></script>
<script type=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=' 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函数如下:
<script type=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(<font color='red'>已经存在此名称,请检查是否已经添加过</font>);
}
else{
$(#titletips).html(<font color='green'>可以添加信息</font>);
}
returnfalse;
}
else{
$(#titletips).html(<font color='red'>检测失败,请重试</font>);
}
});
}
</script>
接着在title字段的input后放一个容器用于存储提示信息,例如<span id=titletips></span>,还可以通过在出现重复时禁用其他input输入等方式来限制,这里只是给出原理,大家可在此基础上发挥。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。



