帝国CMS AJAX验证信息标题是否重复实现方法

时间:2024年03月02日

/

来源:网络

/

编辑:佚名

每次录完信息提交信息会出现一个标题重复!这样就造成信息录完了才发现信息重复不能提交!浪费很多时间!
1.后台->管理数据表->找到title字段->输入表单替换html代码
找到:
<input type=text name=title value="<?=ehtmlspecialchars(stripSlashes($r[title]))?>" size="60"> 
替换成:
<input type=text name=title value="<?=ehtmlspecialchars(stripSlashes($r[title]))?>" size="60" onblur="checkTitle()"> 
在最下面添加如下代码:(JQ库自己加入就进了,这里的链接用的绝对地址)
复制代码
<script type="text/javascript" src="/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
function checkTitle()
    {      
               var classid=<?=$_GET[classid]?>;
               var id=<?=$_GET[classid]?>;
                var tit=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>
复制代码
2.新建一个PHP文件ReTitleAjax.php添加如下代码到PHP代码中
复制代码
define('EmpireCMSAdmin','1');
require("../class/connect.php");
require("../class/db_sql.php");
require("../class/functions.php");
require LoadLang("pub/fun.php");
require("../data/dbcache/class.php");
$link=db_connect();
$empire=new mysqlquery();
$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(empty($num))
{
$num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid][tbname]."_check where title='".addslashes($title)."'".$where." limit 1");
}
echo json_encode($num)
复制代码
然后把这个ReTitleAjax.php文件传到管理员目录也就是(/e/admin/目录下就可以了)。
猜你需要

豫ICP备2021026617号-1  豫公网安备:41172602000185   Copyright © 2021-2028 www.78moban.com/ All Rights Reserved

本站作品均来自互联网,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如有侵犯您的版权,请联系 1565229909#qq.com(把#改成@),我们将立即处理。