首页站内杂志技术文摘
文章内容页

帝国cms二次开发AJAX验证标题是否重复

  • 作者:雨祺
  • 来源: 原创
  • 发表于2022-02-06 21:38:34
  • 被阅读0
  • 帝国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()">
    在输入表单最下面加入如下代码
    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. functioncheckTitle()   
    4. {         
    5. varclassid=<?=$_GET[classid]?>;   
    6. varid=<?=$_GET[classid]?>;   
    7. vartit=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 ,代码如下
    1. define('EmpireCMSAdmin','1');   
    2. require("../class/connect.php");   
    3. require("../class/db_sql.php");   
    4. require("../class/functions.php");   
    5. requireLoadLang("pub/fun.php");   
    6. require("../data/dbcache/class.php");   
    7. $link=db_connect();   
    8. $empire=newmysqlquery();   
    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. $classid=(int)$_GET['classid'];   
    18. $id=(int)$_GET['id'];   
    19. $title=AddAddsData($_GET['title']);   
    20. $where='';   
    21. if($id)   
    22. {   
    23. $where=' and id<>'.$id;   
    24. }   
    25. //已审核 
    26. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where title='".addslashes($title)."'".$where." limit 1");   
    27. //未审核 
    28. if(emptyempty($num))   
    29. {   
    30. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid][tbname]."_check where title='".addslashes($title)."'".$where." limit 1");   
    31. }   
    32. echojson_encode($num); 
    上面是采用post查询返回json结果的方式来实现查重,我们还可以通过get方式,js函数如下:
    1. <script type="text/javascript">   
    2. functioncheckTitle()  
    3. {   
    4. varclassid='<?=$_GET[classid]?>';   
    5. varid='<?=$_GET[id]?>';   
    6. vartit=document.add.title.value;   
    7. varanswerurl='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. returnfalse;   
    17. }   
    18. else{   
    19. $("#titletips").html("<font color='red'>检测失败,请重试</font>");   
    20. }   
    21. });      
    22. }   
    23. </script> 
    接着在title字段的input后放一个容器用于存储提示信息,例如<span id="titletips"></span>,还可以通过在出现重复时禁用其他input输入等方式来限制,这里只是给出原理,大家可在此基础上发挥。
    【审核人:站长】

        标题:帝国cms二次开发AJAX验证标题是否重复

        本文链接:https://www.meiweny.cn/zazhi/zhongwangjiaocheng/75.html

        赞一下

        深度阅读

        • 您也可以注册成为美文苑的作者,发表您的原创作品、分享您的心情!

        阅读记录

          关注美文苑