织梦表单提交提示如何修改?

99ANYc3cd6
预计阅读时长 32 分钟
位置: 首页 织梦建站 正文
  1. 简单修改:只修改提示文字 (推荐,风险低)
  2. 深度修改:自定义提示样式和内容 (灵活,但需要一定代码基础)

简单修改提示文字(推荐)

这种方法最简单,只需要修改一个模板文件,不会影响核心程序,升级时也不会被覆盖。

修改步骤:

  1. 找到你的表单模板文件 你的表单页面通常是一个独立的HTML文件,存放在 /templets/你的模板目录/ 文件夹下,文件名可能是 jiadian.html (家电预约), liuyan.html (留言), tougao.html (投稿) 等。 用FTP或文件管理器找到这个文件。

  2. 定位提示信息的位置 在你的HTML文件中,找到显示提交成功或失败提示的代码,通常它会被一个 {dede:php} 标签包裹,或者直接是一段PHP代码,常见的代码结构如下:

    <!-- 在表单提交后,这里会显示PHP处理的结果 -->
    {dede:php}
    if(isset($cfg_soft_lang) && $cfg_soft_lang=='utf-8')
    {
        $dopost = 'utf8';
    }
    require_once(DEDEINC."/membermodel.cls.php");
    $dsql = new DedeSql(false);
    $addvar = array();
    $addvar['typename'] = '留言反馈'; // 可以修改这里的分类名称
    $addvar['title'] = '用户留言'; // 可以修改这里的标题
    $addvar['email'] = '';
    $addvar['tel'] = '';
    $addvar['qq'] = '';
    $addvar['shijian'] = time();
    $addvar['ip'] = GetIP();
    $addvar['dtime'] = time();
    $addvar['typeid'] = 1; // 指定栏目ID
    $addvar['ischeck'] = 1; // 1为审核,0为不审核
    $addvar['mid'] = $cfg_ml->M_ID;
    $addvar->username = $cfg_ml->M_UserName;
    $addvalue = '';
    foreach($addvar as $k=>$v)
    {
        $addvalue .= ($addvalue=='' ? '' : ',').$k.'=\''.$v.'\'';
    }
    $addvalue .= ',body=\''.$_POST['text'].'\'';
    $rs = $dsql->SetQuery("INSERT INTO `#@__member_flink` (`mid`,`userid`,`title`,`url`,`email`,`shijian`,`typeid`,`ischeck`) VALUES (0,'{$cfg_ml->M_UserName}','用户留言','','','".time()."',1,1)");
    $rs = $dsql->ExecuteNoneQuery($rs);
    if($rs)
    {
        // ********** 重点在这里 **********
        // 成功提示,你可以修改这里的文字
        ShowMsg('提交成功!感谢您的留言!', 'javascript:;', 0, 2000);
    }
    else
    {
        // ********** 重点在这里 **********
        // 失败提示,你也可以修改这里的文字
        ShowMsg('提交失败,请检查信息是否填写完整!', '-1', 0, 2000);
    }
    {/dede:php}
  3. 修改提示文字 在上面的代码中,找到 ShowMsg() 函数,这个函数就是用来显示提示信息的。

    • 第一个参数:就是你要显示的提示文字。

      • 成功提示:将 '提交成功!感谢您的留言!' 修改成你想要的文字,'恭喜您,预约信息已成功提交,我们会尽快与您联系!'
      • 失败提示:将 '提交失败,请检查信息是否填写完整!' 修改成你想要的文字,'很抱歉,提交失败,请稍后重试或联系管理员。'
    • 第二个参数:是提示后跳转的页面。

      • 'javascript:;' 表示不跳转,停留在当前页面。
      • '-1' 表示返回上一页。
      • 你也可以改成具体的网址,如 '/index.html'
    • 第三个参数:是否关闭窗口,一般用 0 即可。

    • 第四个参数:是提示信息自动消失的时间,单位是毫秒。2000 就是2秒。

对于绝大多数用户,直接在表单模板文件里找到 ShowMsg('提示文字', ...) 这一行,修改里面的单引号里的内容就足够了。


深度修改(自定义提示样式和内容)

如果你想把提示信息做得更美观,比如改成弹出层、模态框,或者想在提示信息里包含更多信息(比如用户刚提交的内容),就需要修改核心函数 ShowMsg()

修改步骤:

  1. 找到核心函数文件 ShowMsg() 函数位于织梦的核心目录下,路径是: /include/common.func.php

  2. 备份原文件 在进行任何修改之前,务必备份 /include/common.func.php 文件!这是非常重要的,防止修改错误导致网站无法正常运行。

  3. 定位并修改 ShowMsg 函数 用代码编辑器打开 /include/common.func.php 文件,搜索 function ShowMsg,找到这个函数的定义。

    你会看到类似下面的代码(版本不同可能略有差异):

    // 通用提示信息函数
    function ShowMsg($msg, $gourl, $onlymsg=0, $limittime=10000)
    {
        if($onlymsg==0)
        {
            $htmlhead = "<html>\r\n<head>\r\n<title>提示信息</title>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=".$cfg_soft_lang."\" />\r\n";
            $htmlhead .= "<base target='_self' />\r\n";
            $htmlhead .= "<style>body,td{font-family:'Microsoft YaHei', Arial, sans-serif;font-size:12px;}div{line-height:1.8em;}a{color:#0066cc;text-decoration:underline;}</style>\r\n";
            $htmlhead .= "</head>\r\n<body leftmargin='0' topmargin='0'>\r\n<center>\r\n<div style='width:450px;padding:10px 6px;border:1px solid #A8C0E1;margin-top:10%;'>";
            $htmlhead .= "<div style='border-bottom:1px solid #A8C0E1;padding:6px;font-size:14px;font-weight:bold;'>{$msg}</div>\r\n";
            if($gourl=='-1')
            {
                $gourl = "javascript:history.go(-1);";
            }
            if($gourl=='')
            {
                $gourl = "javascript:close();";
            }
            if($limittime==0)
            {
                $litime = "<div style='padding:10px'><a href='{$gourl}'>如果您的浏览器没有自动跳转,请点击这里</a></div>";
            }
            else
            {
                $litime = "<div style='padding:10px'>系统将在 <span id='sec' style='font-weight:bold'>".$limittime/1000."</span> 秒后自动跳转,请稍候...<br /><br /><a href='{$gourl}'>如果您的浏览器没有自动跳转,请点击这里</a></div>";
            }
            $htmlfoot = "</div>\r\n";
            $htmlfoot .= "<script language=\"javascript\">\r\n";
            $htmlfoot .= "function JumpUrl(url)\r\n{\r\nlocation.href=url;\r\n}\r\n";
            if($limittime>0)
            {
                $htmlfoot .= "function SetSecond(sec){\r\nif(sec==0){JumpUrl('$gourl');return;}\r\ndocument.getElementByIdx_x('sec').innerHTML=sec;\r\nsetTimeout('SetSecond(sec-1)',1000);\r\n}\r\n";
                $htmlfoot .= "SetSecond($limittime/1000);\r\n";
            }
            $htmlfoot .= "</script>\r\n";
            $htmlfoot .= "</center></body>\r\n</html>";
            $msg = $htmlhead.$litime.$htmlfoot;
            echo $msg;
        }
        else
        {
            echo "<script language=\"javascript\">alert(\"".$msg."\");</script>";
        }
        exit();
    }
  4. 自定义你的提示HTML 你可以完全重写这个函数的 $htmlhead$litime$htmlfoot 部分,来实现你想要的任何样式。

    示例:修改成一个简单的蓝色提示框

    // 通用提示信息函数 (修改版)
    function ShowMsg($msg, $gourl, $onlymsg=0, $limittime=2000)
    {
        if($onlymsg==0)
        {
            // 1. 定义新的HTML头部样式
            $htmlhead = "<html>\r\n<head>\r\n<title>提示信息</title>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=".$cfg_soft_lang."\" />\r\n";
            $htmlhead .= "<base target='_self' />\r\n";
            // 这里是新的CSS样式,你可以自由修改
            $htmlhead .= "<style>body{font-family:'Microsoft YaHei', Arial, sans-serif;background:#f5f5f5;}.msg-box{width:400px;margin:100px auto;padding:20px;border-radius:5px;background:#fff;box-shadow:0 0 10px rgba(0,0,0,0.1);}.msg-title{font-size:16px;font-weight:bold;color:#fff;background:#007bff;padding:10px;text-align:center;border-radius:3px 3px 0 0;}.msg-content{padding:15px 0;}.msg-footer{text-align:center;}</style>\r\n";
            $htmlhead .= "</head>\r\n<body>\r\n<center>\r\n<div class='msg-box'>\r\n<div class='msg-title'>系统提示</div>\r\n<div class='msg-content'>{$msg}</div>\r\n<div class='msg-footer'>";
            // 2. 处理跳转逻辑
            if($gourl=='-1') $gourl = "javascript:history.go(-1);";
            if($gourl=='') $gourl = "javascript:close();";
            // 3. 定义提示底部信息
            $litime = "<a href='{$gourl}'>点击此处跳转</a> | <span id='sec' style='color:#999;'>".($limittime/1000)."</span>秒后自动跳转";
            $htmlfoot = "</div>\r\n</div>\r\n";
            $htmlfoot .= "<script language=\"javascript\">\r\n";
            $htmlfoot .= "function JumpUrl(url){ location.href=url; }\r\n";
            if($limittime>0)
            {
                $htmlfoot .= "function SetSecond(sec){ if(sec==0){JumpUrl('$gourl');return;} document.getElementById('sec').innerHTML=sec; setTimeout('SetSecond(sec-1)',1000); }\r\n";
                $htmlfoot .= "SetSecond(".($limittime/1000).");\r\n";
            }
            $htmlfoot .= "</script>\r\n";
            $htmlfoot .= "</center></body>\r\n</html>";
            // 4. 组合并输出最终HTML
            $msg = $htmlhead.$litime.$htmlfoot;
            echo $msg;
        }
        else
        {
            // 这是弹出框模式,$onlymsg=1时使用
            echo "<script language=\"javascript\">alert(\"".$msg."\");</script>";
        }
        exit();
    }

重要提示

  • 修改核心函数后,网站里所有使用 ShowMsg() 的地方(包括后台)都会变成你新的样式,如果你只想修改前台表单,请确保你在表单模板里调用的是自定义的函数(MyShowMsg()),而不是默认的 ShowMsg()
  • 升级织梦时,/include/common.func.php 文件通常会被覆盖,你需要重新做一次修改。

总结与建议

修改方式 优点 缺点 适用人群
修改模板文件 简单、安全、不影响核心、升级无忧 只能修改文字,无法改变样式 绝大多数用户,新手首选
修改核心函数 功能强大、可完全自定义样式和逻辑 有风险(改错网站崩溃)、升级会被覆盖、影响全局 有一定PHP和HTML基础,希望深度定制网站样式的开发者

给新手的建议:场景一 开始,先在模板文件里修改提示文字,这通常能满足80%的需求,如果对样式不满意,再考虑 场景二,但一定要记得先备份文件!

-- 展开阅读全文 --
头像
dede 信息发布模板
« 上一篇 今天
c语言continue用法
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

目录[+]