迅睿CMS网站资料下载列表页,点击资料,弹出自定义图形验证码表单。通过则发送邮件+下载。
分享给有需要的运营朋友:
创建表单,表单系统(没有去官方下载插件,免费)-进入-创建表单,如资料申请zlsq
添加自定义字段:你要让用户填的信息,基本都是text文本字段
3. 创建好表单点击修改:通知提醒-/config/notice/email/form_email_zlsq.html-根据系统出现的通知模板,去对应的目录创建form_email_zlsq.html,
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>【资料申请通知】</title>
</head>
<body>
系统于{dr_date($sys_time)}自动读取了以下用户留言信息,请查阅~<br/>
IP: {$sys_ip}<br/>
{$ip_address}
<p></p>
资料标题:{$title}<br/>
公司名:{$co}<br/>
姓名:{$xm}<br/>
联系号码:{$telnum}<br/>
下载地址:{$url}<br/>
<br/>
<br/>
来自:[您的网站名称]
</body>
</html>
4.不用写自定义控制器,利用迅睿原生表单,直接在列表页前端干就行
<html><body>
<div class="news"> <div class="w1200"> <ul class="news-list"> {module module=article catid=$catid num=8 order=updatetime page=1 return=t} <li> <!-- ===== 核心1:用 data 属性传参,避免 onclick 内联特殊字符报错 ===== --> <a href="javascript:;" class="zlsq-link clearfix" data-file="{dr_down_file($t.fjdown)}" data-title="{$t.title}"> <div class="img"> <div class="img-vertical"> <div class="img"> <img src="{dr_get_file($t['thumb'])}" alt="{$t.title}" class="transition"/> </div><i></i> </div> </div> <div class="text"> <div class="tit overf">{$t.title}</div> <div class="des">{dr_strcut($t.description, 80)} ...</div> </div> </a> </li> {/module} </ul> <div class="page">{$pages_t}</div> </div> </div> <!-- ===== 资料申请弹窗 ===== --> <div class="shade" id="zlsqShade"></div> <div class="fixed-pop offer-pop" id="zlsqPop"> <div class="content"> <div class="close" onclick="closeZlsqPop()"></div> <div class="con"> <div class="tit">资料下载申请</div> {php extract(dr_get_form_post_value('zlsq'))} <form action="{$post_url}" method="post" id="zlsqForm"> {$form} <!-- ===== 核心2:title 是系统必填字段,zlbt(如有扩展需求)可选保留 ===== --> <input type="hidden" name="data[title]" id="down_title"> <input type="hidden" name="data[url]" id="down_file"> <div class="box clearfix"> <div class="left"> <div class="row clearfix"> <div class="in"> <input type="text" name="data[co]" placeholder="公司名称(选填)" /> </div> <div class="in"> <input type="text" name="data[xm]" placeholder="您的姓名(选填)" /> </div> </div> <div class="row clearfix"> <div class="in"><span>*</span> <input type="tel" name="data[telnum]" placeholder="手机号码(必填)" maxlength="11" oninput="this.value=this.value.replace(/\D/g,'')"> </div> </div> <div class="row clearfix"> <div class="input-group"> <input type="text" autocomplete="off" placeholder="验证码" name="code"> <img class="fc-code" onclick="this.src='/index.php?s=api&c=api&m=captcha&'+Math.random();" src="/index.php?s=api&c=api&m=captcha"> </div> </div> </div> <div class="right"> <span>资料<br/>下载</span> <input type="button" onclick="submitZlsqForm()" value="确认下载" /> </div> </div> </form> <div class="box-text"><i>[品牌名]</i><span>[行业定位]</span><em>免费咨询 丨 {dr_site_value('lxdh')}</em></div> </div> </div> </div> {template "info_footer.html"}</div><!-- ===== 核心3:完整 JS 逻辑 ===== --><script>var zlsqDownUrl = '';// 【核心】用 data 属性 + 事件委托,彻底避免 onclick 内联传参的 JS 语法错误$(document).on('click', '.zlsq-link', function(e) { e.preventDefault(); var url = $(this).attr('data-file'); var title = $(this).attr('data-title'); openZlsqPop(url, title); });// 打开弹窗function openZlsqPop(url, title) { zlsqDownUrl = url; $('#down_file').val(url); // 下载地址 → data[url] $('#down_title').val(title); // 资料标题 → data[title] $('#zlsqShade, #zlsqPop').show(); $('.fc-code').click(); // 刷新验证码}// 关闭弹窗function closeZlsqPop() { $('#zlsqShade, #zlsqPop').hide(); $('#zlsqForm')[0].reset(); }// 【核心】提交表单,兼容迅睿CMS多种JSON响应格式function submitZlsqForm() { var tel = $('input[name="data[telnum]"]').val().trim(); var code = $('input[name="code"]').val().trim(); // 前端验证 if (!tel || tel.length != 11) { alert('请输入正确的11位手机号'); return; } if (!code) { alert('请输入验证码'); return; } $.ajax({ url: $('#zlsqForm').attr('action'), type: 'POST', data: $('#zlsqForm').serialize(), dataType: 'json', success: function(res){ // 兼容4种响应格式 var isSuccess = false; var msg = ''; if (res.code !== undefined && res.code !== '') { // 格式1: {code: 1, msg: '...'} — 新版迅睿 isSuccess = (res.code == 1 || res.code === '1'); msg = res.msg || res.info || ''; } else if (res.status !== undefined && res.status !== '') { // 格式2: {status: 1, info: '...'} — 旧版迅睿 isSuccess = (res.status == 1 || res.status === '1'); msg = res.info || res.msg || ''; } else if (res.error !== undefined && res.error !== '') { // 格式3: {error: 0, message: '...'} isSuccess = (res.error == 0 || res.error === '0'); msg = res.message || res.msg || ''; } else if (res.result !== undefined) { // 格式4: {result: 'success', ...} isSuccess = (res.result === 'success' || res.result === true); msg = res.msg || res.info || ''; } // 兜底:msg 包含"成功"或"OK"也视为成功 if (!isSuccess && msg && (msg.indexOf('成功') >= 0 || msg.indexOf('OK') >= 0)) { isSuccess = true; } if (isSuccess) { closeZlsqPop(); alert('提交成功,正在下载!'); if (zlsqDownUrl) { window.open(zlsqDownUrl, '_blank'); } else { alert('下载地址为空,请联系管理员'); } } else { alert('提交失败:' + (msg || '未知错误')); $('.fc-code').click(); } }, error: function(xhr, status, error){ alert('网络异常,请重试'); $('.fc-code').click(); } }); } $(function(){ $('#zlsqShade').click(closeZlsqPop); });</script>
</body></html>