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

公司项目是用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. BCB直接访问硬件端口和物理内存 - WinIO的应用

    BCB直接访问硬件端口和物理内存 - WinIO的应用 (读硬盘参数和主板BIOS信息, 支持 Win9x/NT/2k/XP/2003) 关于直接访问端口, 有很多网站很多文章都讨论过, 但总找不到非 ...

  2. Linux Shell编程第5章——文件的排序、合并和分割

    目录 sort命令 sort命令的基本用法 uniq命令 join命令 cut命令 paste命令 split命令 tr命令 tar命令 sort命令 sort命令是Linux系统一种排序工具,它将输 ...

  3. git--公司中暂时用到的命令操作

    使用的版本控制工具  git + phabricator arc Phabricator是软件开发管理工具,集成了code review, task tracking, version control ...

  4. 利用cgroup控制进程使用的资源(cpu、内存等)

    实验环境:centos 6.10 1.安装libcgroup yum install -y libcgroup 2.进入资源控制器默认挂载目录/cgroup [root@hadoop1 cgroup] ...

  5. 【Flask】Flask Cookie操作

    ### 什么是cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了解决这个问题,第 ...

  6. Zabbix 自定义Key

    系统:Linux Centos 7.4 x64.Windos 2008 x64 服务:Zabbix 3.0.16 说明1:自定义Key 主要通过自定义 脚本 或者 命令 来实现自定义监控类型,需要在a ...

  7. 转一篇Git代码回滚技巧

    转 https://github.com/geeeeeeeeek/git-recipes/wiki/5.2-代码回滚:Reset.Checkout.Revert的选择

  8. [Android Studio系列(五)] Android Studio手动配置Gradle的方法

    1 问题 (1) android sutdio第一次打开一个工程巨慢怎么办? (2) 手动配置Gradle Home为什么总是无效? (3) 明明已经下载了Gradle,配置了gradle home, ...

  9. NOIP 马拦过河卒

    描述 棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为“马拦过河卒”. 棋盘 ...

  10. anacoda的spyder在调用matplotlib的时候无法显示动画效果【学习笔记】

    ipython console的默认设置将图像结果显示在终端,但是这样显示存在的问题是无法显示动画效果,因此需要将动画效果显示到单独的窗口,按照下面的截图即可显示. 方法一.按照如下截图显示设置,重启 ...