帝国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

相关推荐