Ajax--serialize应用表单数据序列化

Posted QinXiao.Shou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax--serialize应用表单数据序列化相关的知识,希望对你有一定的参考价值。

一.jQuery+Ajax表单数据序列化

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <p id="results"><b>Results: </b> </p>
 9     <form>
10         <p>地址</p>
11         <select name="address">
12             <option>Guangdong</option>
13             <option>Beijing</option>
14             <option>Shanghai</option>
15         </select>
16         <p>爱好</p>
17         <input type="checkbox" name="hobby" value="足球"/> 足球
18         <input type="checkbox" name="hobby" value="蓝球" checked="checked"/> 蓝球
19         <p>性别</p>
20         <input type="radio" name="sex" value="male" checked="checked"/> 男
21         <input type="radio" name="sex" value="female"/> 女
22         <input type="radio" name="sex" value="保密"/> 保密
23     </form>
24 </body>
25 </html>
26 <script src="lib/jquery-1.12.2.js"></script>
27 <script>
28     // serialize 序列表表单数据
29     // 返回结果:address=Guangdong&hobby=蓝球&sex=male
30     //  序列化表单工作原理:
31     //      1. 找到表单分区里面有name属性的表单项,
32     //      2. 获取每一个name的值
33     //      3. 把name属性和对应的值拼接成字符串
34     console.log( $("form").serialize() );
35     $("#results").append( $("form").serialize() );
36 </script>

02_JQ_AJAX_post.php

 1 <?php
 2 /**
 3  * Created by qinpeizhou.
 4  * Date: 2017/11/10
 5  * Time: 15:03
 6  * Email : [email protected]
 7  */
 8  header(‘Content-Type:text/html;charset=utf-8;‘);
 9 // echo ‘Success,你成功的从PHP服务器拿到了数据‘;
10 $uName = $_POST[‘userName‘];
11 $users = ["jack",‘rose‘,‘tom‘];
12 $isExist = in_array($uName,$users);
13 if($isExist) {
14    echo "该帐号已注册,换一个试试";
15 }else{
16    echo "你可以注册";
17 }

表单序列化例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .tips{
            color:red;
        }
    </style>
</head>
<body>
<form action="02_JQ_AJAX_post.php" method="POST" id="loginForm">
    <p class="tips" id="tips"></p>
    用户名<input type="text" name="userName" id="userName"/>
    密码<input type="password" name="userPwd" id="userPwd"/>
    <input type="submit" id="submitBtn" value="登录">
</form>
</body>
</html>
<script src="lib/jquery-1.12.2.js"></script>
<script>
  /* $(‘#userName‘).blur(function () {
       /!**
        *  $.ajax({});
        *    url 服务器地址
        * *!/
       var txt = $(this).val();
       $.ajax({
           type:‘GET‘,
           url:‘01_JQ_AJAX_get.php‘,
           data:{
               userName : txt
           },
           success : function (res) {
               $(‘#tips‘).html(res);
           }
       });
   });*/

  $(‘#submitBtn‘).click(function () {
     var userText = $(‘#userName‘).val();
     if($.trim(userText).length==0){
       $(‘#tips‘).html("用户名不能为空");
     }
      $.ajax({
          type: ‘POST‘,
          url: ‘02_JQ_AJAX_post.php‘,
          data: $(‘#loginForm‘).serialize(), // 表单数据序列化
          success: function (res) {
              $("#tips").html( res );
          }
      });
     // 阻止提交按钮的默认行为
      return false;
  });
</script>

 

以上是关于Ajax--serialize应用表单数据序列化的主要内容,如果未能解决你的问题,请参考以下文章

jQuery ajax - serialize() 方法

Ajax serialize() 方法没有读取 html 表单的所有数据字段

深入理解ajax系列第四篇

将多维表单数据序列化为 JSON 对象数组以使用 application/json

Jquery表单序列化后添加数据

JavaScript之form表单的序列化和json化[form.js]