今天按照要求,要做一个登陆、注册表单,本来样式做好就行了,本来咱就是干前端的,但让咱自己都没想到的是,不到一个小时竟然都干完了,实在闲的蛋疼,就想到链接数据库玩,遥想当年,毕竟咱也是写过后台的,哪知,咳咳,真要是写了,真是一万个草拟吗,在心中奔腾。

公司项目是用TP写的,所以要搞适应tp的方式,搞了半天,发现不会!原来学的,都还给学校里的项目导师光哥啦!

于是G、B、狗,边查边学,最后还是被咱赶出了,在此记一下!

这是html的注册表单:

<div class="register-box">
<div class="login-dialog-header">
<button class="btn-login-dialog-close" type="button">
×
</button>
<div class="login-dialog-tt">
<h2 class="">注册</h2>
</div>
</div>
<div class="login-dialog-body">
<form id = 'register-box-form'>
<div class="login-usr-name">
<label for>账号:</label>
<input type="text" name="name" class="inpt-style inpt-login-usr-name" placeholder="邮箱/手机号">
</div>
<div class="login-usr-pwd">
<label for>密码:</label>
<input type="password" name="pwd" class="inpt-style inpt-login-usr-pwd" placeholder="设置密码">
</div>
</form>
</div>
<div class="login-dialog-footer">
<button type="button" class="btn-style btn-block login-dialog-submit ">注册</button>
<div class="go-login">&lt;去登录</div>
</div>
</div>

下面是ajax:

function submitClickEvent(){
$('.register-box .login-dialog-submit').click(function(){ //数据序列化,但是不知道在PHP哪里怎么接住??以后解决
//var formData = $("#register-box-form").serialize(); var name=$('.register-box .inpt-login-usr-name').val();
var pwd=$('.register-box .inpt-login-usr-pwd').val();
//console.log(name,pwd);
$.ajax({
type: "POST",
url: "index/index/insert",
cache: false,
data:{
name:name,
pwd:pwd
},
success:function(data){
alert("注册成功!");
},
error:function(){
alert('注册失败!');
}
}); });
}

接着是tp5里面的代码:

    // 处理表单数据
public function insert() {//此方法对应js里的 url: "index/index/insert", $data = [
'id'=>time(),
'userName' => $_POST['name'],
'pwd' => $_POST['pwd']
]; //error_log('dd2'.$data, 3, "./my-errors.log");
////echo Db::table('bdn_user_table')->insertAll($data)?'成功!':'失败!';
if(Db::table('bdn_user_login_table')->insert($data)){
$this->ajaxReturn($_POST,'添加信息成功',1);
}else{
$this->ajaxReturn(0,'添加失败',0);
}
}

先留着,所不定,咱转行干后端,能用上!!

<script type="text/JavaScript">

//序列化

                       var data = $('#form_FanXuLie').serialize();

data = decodeURIComponent(data ,true);//调用decodeURIComponent(XXX,true);将数据解码,解决中文乱码问题

                       console.log(data)//=> 'name=val&age=val&charId=val'

                        //反序列化 对jquery ajax的serialize()值的反序列化
var data = 'name=王硕&age=20岁&beizhu=测试反序列化';
data.split('&').forEach(function (item) { //js的forEach()方法
item = item.split('=');
var name = item[0],
val = item[1];
$('#form_FanXuLie [name=' + name + ']').val(val); }); </script>
js和php中数组序列化(serialize和unserialize)
对于url中参数值的传递,在数组方面可能显得无能为力。但在php中,我们可以使用serialize()将数组序列化,
得到一个字符串,这样就可以很轻易的传递了。当得到该字符串后,我们使用unserialize()将这个字符串反序列化,
得到原来的数组。
然而,我们在js和js或者js和php中怎么传递数组呢?因为在js中,没有这样(serialize)的函数,
所以我们只有使用自定义的函数将数组转化为字符串,这样虽然也能实现,但运行效率却降低了。
在ajax中,我们可以使用xml标准数据存储格式进行数据传递,但如果只是传递简单的比如“0”,“1”之类的,
根本用不着xml那样复杂的格式,那样反而降低了效率。对于简单的数组,
我们也不必先按照xml死板的格式封装数据,而只需要使用函数serialize()将它序列化,
然后通过xmlhttprequest返回给客户端。在客户端,因为是js处理,所以不能用php现成的unserialize()函数来将它反序列化,
于是需要引用到两个js文件:utf.js(编码转换)和Phpserializer.js(封装serialize和unserialize函数)。
这两个文件网上可以下载到。
具体用法:
scrīpt src="./utf.js">scrīpt src="./Phpserializer.js">
在服务器端:$arr是从数据库查询的记录数组。$arr=serialize($arr);
客户端:var s=xmlHttpRequest.responseText;
var a=unserialize(s);
这样,a这个数组和$arr是完全一样的。数组传递原来也这么简单。
上面的js引用没有写完整,因为新浪的编辑器好像不支持直接写代码是的。

另附加一些查到的有用信息,部分没有经过验证,使用时留心!

ajax 提交 注册表单 到MySQL数据库的更多相关文章

  1. ajax提交form表单

    1. ajax提交form表单和不同的form表单的提交主要区别在于,ajax提交表单是异步提交的,而普通的是同步提交的表单. 2. from视图部分 <form id="loginF ...

  2. ajax提交form表单资料详细汇总

    一.ajax提交form表单和不同的form表单的提交主要区别在于,ajax提交表单是异步提交的,而普通的是同步提交的表单.通过在后台与服务器进行少量数据交换,ajax 可以使网页实现异步更新.这意味 ...

  3. jquery实现ajax提交form表单的方法总结

    本篇文章主要是对jquery实现ajax提交form表单的方法进行了总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 方法一:  function AddHandlingFeeToRefund( ...

  4. jquery的ajax提交form表单方式总结

    方法一: function AddHandlingFeeToRefund() { var AjaxURL= "../OrderManagement/AjaxModifyOrderServic ...

  5. Ajax提交Form表单的一种方法

    待提交的表单 <form id="updatePublicKey" enctype="multipart/form-data"> <div c ...

  6. Ajax提交from表单

    一,使用Ajax提交form表单到后台传参问题 1,首先,定义一个form: <form class="form-horizontal" role="form&qu ...

  7. ajax提交form表单问题

    form表单提交数据可以省下大量大量获取元素的代码,局部刷新时也可以用ajax提交form表单,但是要先把表单序列化,再把后台javaBean对象序列化,但是你有可能前后台都执行了系列化,但是后台还是 ...

  8. Ajax提交form表单内容和文件(jQuery.form.js)

    jQuery官网是这样介绍form.js A simple way to AJAX-ify any form on your page; with file upload and progress s ...

  9. 使用ajax提交form表单,包括ajax文件上传【转载】

    [使用ajax提交form表单,包括ajax文件上传] 前言 转载:作者:https://www.cnblogs.com/zhuxiaojie/p/4783939.html 使用ajax请求数据,很多 ...

随机推荐

  1. T25健身视频全集+课表

    http://jianfei.39.net/thread-3639251-1.html T25健身视频全集+课表 强度适中 不伤膝盖! [复制链接]     zytttt         主题 好友 ...

  2. selenium的下拉选择框

    今天总结下selenium的下拉选择框.我们通常会遇到两种下拉框,一种使用的是html的标签select,另一种是使用input标签做的假下拉框. 后者我们通常的处理方式与其他的元素类似,点击或使用J ...

  3. String与其他类型的转换

    首先,对于String类有一点是毫无疑问的:对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象. 一. String与StringBuilder.StringBu ...

  4. [笔记]Go语言写文件几种方式性能对比

    Go语言中写文件有多种方式,这里进行如下几种方式的速度对比: 打开文件,写入内容,关闭文件.如此重复多次 打开文件,写入内容,defer 关闭文件.如此重复多次 打开文件,重复多次写入内容,defer ...

  5. PAT 天梯赛 L1-042. 日期格式化 【水】

    题目链接 https://www.patest.cn/contests/gplt/L1-042 AC代码 #include <iostream> #include <cstdio&g ...

  6. HDU - 6370 Werewolf 2018 Multi-University Training Contest 6 (DFS找环)

    求确定身份的人的个数. 只能确定狼的身份,因为只能找到谁说了谎.但一个人是否是民,无法确定. 将人视作点,指认关系视作边,有狼边和民边两种边. 确定狼的方法只有两种: 1. 在一个仅由一条狼边组成的环 ...

  7. HihoCoder - 1339 Dice Possibility(概率dp)

    题意:求用N(1<=N<=100)个骰子掷出M(1<=M<=600)的概率 分析:直接求概率可能出现6^100次方,会爆精度.可以用一个数组dp[i][j]记录用i个骰子掷出j ...

  8. hadoop2.7.x运行wordcount程序卡住在INFO mapreduce.Job: Running job:job _1469603958907_0002

    一.抛出问题 Hadoop集群(全分布式)配置好后,运行wordcount程序测试,发现每次运行都会卡住在Running job处,然后程序就呈现出卡死的状态. wordcount运行命令:[hado ...

  9. 饭卡管理系统学生E-R图

    - 2 - 1.1 可行性分析 1.1.1 项目背景 近年来学生食堂饭卡的使用给高校餐饮管理带来了一次革命, 从结算方式到账户管理, 从卫生便捷到数据统计等,不仅给就餐者带来了方便,也使餐饮结算手段发 ...

  10. 简单的aop实现日志打印(切入点表达式)

    Spring中可以使用注解或XML文件配置的方式实现AOP. 1.导入jar包 com.springsource.net.sf.cglib -2.2.0.jar com.springsource.or ...