建站技术网专注分享网站建设技术,网站建设教程,真正帮你学会做网站技术,轻松解决网站建设过程中遇到的常见问题,为广大站长服务。 网站地图 | 收藏本站 | 订阅
域名投资,就来找米网,认准网址:www.zhaomi.cc 专业仿站,就到仿站网:www.fangzhan.org
  站内公告: ·帝国cms教程内容已更新,欢迎关注     ·建站技术网采用阿里云服务器,备案已通    
您当前的位置:建站技术网 > cms教程 > 帝国cms教程

帝国CMS通过AJAX在后台发布信息时验证标题是否重复的方法

时间:2019-05-12 11:13:06  来源:网络收集  整理: 建站技术网 www.jzjsw.com     点击:0次

很多朋友会有这种需求,在帝国cms后台发信息时想验证一下标题是否存在,如果存在了可以避免出现重复的信息。下面跟着cms大学小编一起来学习一下在帝国cms中的实现方法。

1、帝国cms后台 - 管理数据表 - 找到自己使用的数据表 - 修改title字段 - 输入表单使用下面的代码

找到代码

折叠XML/HTML 代码
  1. <input type=text name=title value="<?=ehtmlspecialchars(stripSlashes($r[title]))?>" size="60">   

替换为

折叠XML/HTML 代码
  1. <input type=text name=title value="<?=ehtmlspecialchars(stripSlashes($r[title]))?>" size="60" onblur="checkTitle()">   

在输入表单最下面加入如下代码

折叠JavaScript 代码
  1. <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.min.js"></script>  
  2. <script type="text/javascript">  
  3. function checkTitle()  
  4.     {        
  5.                var classid=<?=$_GET[classid]?>;  
  6.                var id=<?=$_GET[classid]?>;  
  7.                 var tit=document.add.title.value;  
  8.                 console.log("我是标题="+tit);  
  9.                 console.log("我是classid="+classid);  
  10.                 console.log("我是id="+id);  
  11. $.ajax({  
  12.             url: 'ReTitleAjax.php?classid='+classid+'&id='+id+'&title='+tit,  
  13.             dataType:"json",  
  14.             cache: false,  
  15.                         error: function(){  
  16.                 alert("检测失败,请重试");  
  17.             },  
  18.             success: function(data){  
  19.                 if (data==1){  
  20.                     alert('重复标题');  
  21.                 }  
  22.                 if (data==0){  
  23.                     //alert('可以添加信息');  
  24.                                         console.log("可以添加信息");  
  25.                 }  
  26.             }  
  27.         });      
  28.     }  
  29. </script>  

接着新建一个php文件,保存在 /e/admin/ReTitleAjax.php ,代码如下

折叠PHP 代码
  1. define('EmpireCMSAdmin','1');  
  2. require("../class/connect.php");  
  3. require("../class/db_sql.php");  
  4. require("../class/functions.php");  
  5. require LoadLang("pub/fun.php");  
  6. require("../data/dbcache/class.php");  
  7. $link=db_connect();  
  8. $empire=new mysqlquery();  
  9. $editor=1;  
  10. //验证用户  
  11. $lur=is_login();  
  12. $logininid=$lur['userid'];  
  13. $loginin=$lur['username'];  
  14. $loginrnd=$lur['rnd'];  
  15. $loginlevel=$lur['groupid'];  
  16. $loginadminstyleid=$lur['adminstyleid'];  
  17.   
  18. $classid=(int)$_GET['classid'];  
  19. $id=(int)$_GET['id'];  
  20. $title=AddAddsData($_GET['title']);  
  21. $where='';  
  22. if($id)  
  23. {  
  24. $where=' and id<>'.$id;  
  25. }  
  26. //已审核  
  27. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where title='".addslashes($title)."'".$where." limit 1");  
  28. //未审核  
  29. if(emptyempty($num))  
  30. {  
  31. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid][tbname]."_check where title='".addslashes($title)."'".$where." limit 1");  
  32. }  
  33. echo json_encode($num);  

上面是采用post查询返回json结果的方式来实现查重,我们还可以通过get方式,js函数如下:

折叠JavaScript 代码
  1. <script type="text/javascript">  
  2. function  checkTitle() 
  3. {  
  4.     var classid='<?=$_GET[classid]?>';  
  5.     var id='<?=$_GET[id]?>';  
  6.     var tit=document.add.title.value;  
  7.         var answerurl='ReTitleAjax.php';  
  8.         $.get(answerurl+"?classid="+classid+'<?=$ecms_hashur['ehref']?>&title='+tit, function(data){  
  9.             if(data){  
  10.                 if(data==1){  
  11.                     $("#titletips").html("<font color='red'>已经存在此名称,请检查是否已经添加过</font>");  
  12.                 }  
  13.                 else{  
  14.                     $("#titletips").html("<font color='green'>可以添加信息</font>");  
  15.                 }  
  16.                 return false;  
  17.             }  
  18.             else{  
  19.                 $("#titletips").html("<font color='red'>检测失败,请重试</font>");  
  20.             }  
  21.         });     
  22. }  
  23. </script>  

接着在title字段的input后放一个容器用于存储提示信息,例如<span id="titletips"></span>,还可以通过在出现重复时禁用其他input输入等方式来限制,这里只是给出原理,大家可在此基础上发挥。

注:如在帝国cms7.2版本开启金刚模式或刺猬模式下使用,需要在js函数中加入hash验证字符串,并在php处理文件中加入验证函数,否则会出现访问验证页面空白无法返回数据。

QQ截图20170620140512.jpg

标签:
文章标题:帝国CMS通过AJAX在后台发布信息时验证标题是否重复的方法
文章网址:http://www.jzjsw.com/cmsJiaocheng/diguocms/11451.html
上一篇:帝国cms手机wap版列表分页按钮修改为数字形式的方法
下一篇:帝国cms将文章地址修改为目录形式的方法
来顶一下
返回首页
返回首页
相关文章
    无相关信息
推荐资讯
如何通过SEO优化排名赚钱?SEO赚钱方法
如何通过SEO优化排名赚
seo优化教程:网站seo内容优化
seo优化教程:网站seo
SEO细节:企业SEO如何快速为新站做出效果
SEO细节:企业SEO如何
电商技术将如何发展?2018年有这五个大胆预测
电商技术将如何发展?
最新文章
栏目更新
栏目热门