HPCMS V9使用ajax方式提交表单
一、前台模板(注:需要引入jquery文件)
<form id="myform" class="subscribe-form subscription" >
<input type="hidden" name="fid" value="15">
<input type="hidden" name="sid" value="1">
<input type="hidden" name="dosubmit" value="1">
<input type="email" id="yemail" name="info[yemail]" placeholder="请输入邮箱">
<input type="button" value="提交" onclick="formsubmit()">
<div class="clearfix"></div>
<p class="newsletter-success"></p>
<p class="newsletter-error"></p>
</form> <script language="javascript">
function formsubmit() {
var yemail = $('#yemail').val();
if (yemail == '') {
$(".newsletter-error").html("邮箱不能为空!").fadeIn().delay(3000).fadeOut();
return false;
}
if(!yemail.match(/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/))
{
$(".newsletter-error").html("邮箱格式不正确!").fadeIn().delay(3000).fadeOut();
return false;
}
var params = $('#myform').serialize(); //序列化表单的值
$.ajax({
url:'index.php?m=formguide&c=index&a=diyform', //后台处理程序
type:'post', //数据传送方式
dataType:'json', //接受数据格式
data:params, //要传送的数据
success:Response//回传函数(这里是函数名字)
});
}
function Response(resp) {
if (resp.result === 'success') {
$('.newsletter-success').html("提交成功!").fadeIn().delay(3000).fadeOut();
} else if (resp.result === 'error') {
$('.newsletter-error').html("提交失败!").fadeIn().delay(3000).fadeOut();
}
}
</script>
二、表单控制器 phpcms/modules/formguide/index.php 中增加diyform()函数.
public function diyform(){
if (!isset($_POST['fid']) || empty($_POST['fid'])) {
$res['result'] = "error";
exit;
}
$siteid = $_POST['sid'] ? intval($_POST['sid']) : 1;
$formid = intval($_POST['fid']);
$r = $this->db->get_one(array('modelid'=>$formid, 'siteid'=>$siteid, 'disabled'=>0), 'tablename, setting');
if (!$r) {
$res['result'] = "error";
exit;
}
$setting = string2array($r['setting']);
if ($setting['enabletime']) {
if ($setting['starttime']>SYS_TIME || ($setting['endtime']+3600*24)<SYS_TIME) {
$res['result'] = "error";
exit;
}
}
if (isset($_POST['dosubmit'])) {
$tablename = 'form_'.$r['tablename'];
$this->m_db->change_table($tablename);
$data = array();
require CACHE_MODEL_PATH.'formguide_input.class.php';
$formguide_input = new formguide_input($formid);
$data = new_addslashes($_POST['info']);
$data = new_html_special_chars($data);
$data = $formguide_input->get($data);
$data['datetime'] = SYS_TIME;
$data['ip'] = ip();
$dataid = $this->m_db->insert($data, true);
if ($dataid) {
$this->db->update(array('items'=>'+=1'), array('modelid'=>$formid, 'siteid'=>$this->siteid));
}
$res['result'] = "success";
echo json_encode($res);
}
}
HPCMS V9使用ajax方式提交表单的更多相关文章
- tp5中ajax方式提交表单
用ajax提交表单,迅速,快捷,实现页面无刷新提交表单. <!DOCTYPE html> <html lang="en"> <head> < ...
- ASP.NET MVC 网站开发总结(五)——Ajax异步提交表单之检查验证码
首先提出一个问题:在做网站开发的时候,用到了验证码来防止恶意提交表单,那么要如何实现当验证码错误时,只是刷新一下验证码,而其它填写的信息不改变? 先说一下为什么有这个需求:以提交注册信息页面为例,一般 ...
- Ajax实现提交表单时验证码自动验证(原创自Zjmainstay)
本文通过源码展示如何实现表单提交前,验证码先检测正确性,不正确则不提交表单,更新验证码. 1.前端代码 index.html <!DOCTYPE html> <html> &l ...
- java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例
java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例HttpClient 测试类,提供get post方法实例 package com.zdz.httpclient; i ...
- SpringMVC(十四):SpringMVC 与表单提交(post/put/delete的用法);form属性设置encrypt='mutilpart/form-data'时,如何正确配置web.xml才能以put方式提交表单
SpringMVC 与表单提交(post/put/delete的用法) 为了迎合Restful风格,提供的接口可能会包含:put.delete提交方式.在springmvc中实现表单以put.dele ...
- 使用ajax异步提交表单
虽然这篇文章的标题是提交表单,但是主要的难点在于使用ajax提交文本域的内容, 在工作中的经常会需要ajax跨域的问题,通常的需求使用jsonp就可以得到解决,但是当前项目中有一个图片服务器,客户端需 ...
- Django ajax方法提交表单,及后端接受数据
前台代码: {% block content %} <div class="wrapper wrapper-content"> <div class=" ...
- 关于ajax直接提交表单jQuery .validator验证不起作用问题
之前用$.ajax(function(){});直接提交表单,而表单验证不通过也能提交. $(document).ready(function(){ $.ajax({ url:" ...
- Asp.net Mvc Ajax.BeginForm提交表单
之前Mvc中一直用Html.BeginForm提交表单,即如下: @using (Html.BeginForm("Add", "News", FormMetho ...
随机推荐
- Spring各版本源码下载
spring framework 各版本源码下载地址 现在spring的源码下载地址真是不好找,这次终于找到了.记录一下,以帮助需要的朋友. https://github.com/spring-pro ...
- 为什么说Java中只有值传递----说服自己
在开始深入讲解之前,有必要纠正一下大家以前的那些错误看法了.如果你有以下想法,那么你有必要好好阅读本文. 错误理解一:值传递和引用传递,区分的条件是传递的内容,如果是个值,就是值传递.如果是个引用,就 ...
- codeforces 933D A Creative Cutout
题目链接 正解:组合数学. 充满套路与细节的一道题.. 首先我们显然要考虑每个点的贡献(我就不信你能把$f$给筛出来 那么对于一个点$(x,y)$,我们设$L=x^{2}+y^{2}$,那么它的贡献就 ...
- openstack排除查找错误的两种方法
1.openstack日志一般放在什么什么位置?2.如何调试openstack命令执行过程? 我们会经常错误,但是我们碰到错误该怎么做,该如何找到原因.对于openstack有两种办法:在上一篇文章h ...
- 正则表达式详解<一>
正则表达式是一种处理字符串的微型语言:有以下的基本术语: l 模式(pattern):正则表达式实际上是通过字符串表达的一个模式 l 匹配(match): 判断正则表达式和给出的序列[first ...
- 【转】numpy.random.randn()与rand()的区别
转自: https://blog.csdn.net/u010758410/article/details/71799142 numpy中有一些常用的用来产生随机数的函数,randn()和rand()就 ...
- sql sever和mysql 卸载及oracle安装
sql sever和mysql的卸载及Oracle安装 目的:本人健忘,以后难免会重装系统啥的,软件卸了装是常有的事,特此写此详细教程,一是方便自己以后重装的时候可以看看:二是如果有某位初学者有幸光临 ...
- 解决IOS9 下在App中无法打开其他应用的问题
打开 info.plist 文件 ,在根节点下添加下面代码即可,这是由于IOS9新的权限管理机制的问题 <key>LSApplicationQueriesSchemes</key&g ...
- Spark MemoryManager内存模型
- springboot快速入门(二)——项目属性配置(日志详解)
一.概述 application.properties就是springboot的属性配置文件 在使用spring boot过程中,可以发现项目中只需要极少的配置就能完成相应的功能,这归功于spring ...