多个域名网站,想用同一个网站的全局表单,便于管理。
实现方法如下:
页面上必须有的两个js文件链接,否则表单没有作用
jQuery.min.js (第三方js)
cms.js (迅睿cms自带的js)
修改表单PHP文件(控制器)
找到表单文件(/dayrui/App/Form/Controllers/ 下有个和你创建的表单名称一致的php文件)
添加跨域请求(不知道是否必须填写,我是填写了)
//jsonp跨域请求响应头:
header('Access-Control-Allow-Origin:*');
// 响应类型
header('Access-Control-Allow-Methods:*');
// 响应头设置
header('Access-Control-Allow-Headers:x-requested-with,content-type');
再添加一个get方法(里面的input按自己需求增删改)
public function get()
{
//$data = input('get.');
$data = [
'email'=>input('get.email'),
'name'=>input('get.title'),
'phone'=>input('get.author'),
'required'=>input('get.required'),
];
$res = db('jsonp')->insert($data);
if($res){
return json(['code'=>200, 'msg'=>'成功']);
}
}
修改模板HTML
接下来回到模板里HTML进行添加表单(里面参数根据自己需要增删改)
<form action="javascript:void(0)" class="form-horizontal" method="post" name="myforms" id="myforms">
<input type="text" class="form-control" placeholder="name" name="data[title]" /><br>
<input type="text" class="form-control" placeholder="Phone" name="data[author]" /><br>
<input type="email" class="form-control" placeholder="name@example.com" name="data[email]" /><br>
<textarea class="form-control" rows="3" placeholder="Message(required)" name="data[required]"></textarea>
<button id="sub" type="submit" onclick="dr_ajax_submit('主表单域名/index.php?s=form&c=Commforms&m=post', 'myforms', '', '')">Submit</button>
</form>
底部再加个jQuery代码
<script>
$("#sub").click(function () {
$.ajax({
url: "主表单域名",
type: "post",
dataType: "jsonp",
data: $("form").serialize(),
success: function (res) {
console.log(res);
},
});
});
</script>
完成上面两大部分,就可以实现跨域提交表单了。