1. i889网首页
  2. 经验知识

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

每次录完信息提交信息会出现一个标题重复!这样就造成信息录完了才发现信息重复不能提交!浪费很多时间!

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/目录下就可以了)

本文来自投稿,不代表i889网立场,如若转载,请注明出处:https://www.i889.com/94561.html

发表评论

登录后才能评论