Blogger Information
Blog 34
fans 0
comment 1
visits 23414
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
0919作业:jQuery中的Ajax
Samoye
Original
654 people have browsed it

作业:编程1: $.post()实现用户注册

代码块实现的功能:对电话号的验证及从server取得数据的处理

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>实现用户注册</title>
    <script src="../lib/jquery.js"></script>
</head>
<body>
<h3>用户注册</h3>
<div>
    <label for="username">用户名:</label>
    <input type="text" name="username" value="" id="username" placeholder="请填写手机号码!">
</div>
<div>
    <label for="password">密码:</label>
    <input type="password" name="password" value="" id="password" placeholder="不少于6位">
</div>
<div>
    <button value="注册">注册</button>
  <!--  <button value="重置">重置</button>-->
</div>
<script>
    $('button').click(function () { //不太会写,先提供一个思路:拿到文本框的值,先判断是字符串还是数字,然后字符串进行邮箱验证,数字进行手机验证:tostring.call();
        //手机号码验证 (仅一种验证)写成一个函数更好
       /* let phoneReg = /^(((13[0-9]{1})|(14[0-9]{1})|(17[0]{1})|(15[0-3]{1})|(15[5-9]{1})|(18[0-9]{1}))+\d{8})$/; 手机号码正则 */
        /* let emailReg = /\w+[@]{1}\w+[.]\w+/;  邮箱正则 */
        let phone = $("#username").val();
        let phoneReg = /^(((13[0-9]{1})|(14[0-9]{1})|(17[0]{1})|(15[0-3]{1})|(15[5-9]{1})|(18[0-9]{1}))+\d{8})$/;
        if(phone ==''){
           $('#username').after('<span style="color: red;" >请填写手机号码!</span>').next().fadeOut(3000);
           $('#username').focus();
           return false;
        }else if (phone.length != 11){
            $('#username').after('<span style="color: red;" >手机号码位数不正确!</span>').next().fadeOut(3000);
            $('#username').focus();
            return false;
        }else if (!phoneReg.test(phone)){
            $('#username').after('<span style="color: red;" >请填写正确的手机号码!</span>').next().fadeOut(3000);
            $('#username').focus();
            return false;
        }/*else if (checkPhoneIsExist()){ 想对号码是否已被使用验证,但是考虑到密码的验证,就一起发动到PHP,让PHP处理把

        }*/
        //密码非空验证
        if($('#password').val() ==''){
            $('#password').after('<span style="color: red;" >请填写密码!</span>').next().fadeOut(3000);
            $('#password').focus();
            return false;
        } else if ($('#password').val().length < 6) {
            $('#password').after('<span style="color: red;" >密码长度不够!</span>').next().fadeOut(3000);
            $('#password').focus();
            return false;
        }

        //将文本框获得用户信息,返回到服务器进行验证
        //$.post(url[,data][,callback][,dataType])
        $.post(
            'check.php',
            {
                username: $('#username').val(),
                password: $('#password').val()
            },
            function (data) {
                if (data.status == 0){
                   $('button').after('<span style="color:red;"></span>').next().html(data.message).fadeOut(3000);
                }else if (data.status == 1){
                    $('button').after('<span style="color:green;"></span>').next().html(data.message).fadeOut(3000);
                }else if (data.status == 2){
                    $('button').after('<span style="color:yellow;"></span>').next().html(data.message).fadeOut(3000);
                }
            },
            'json'
        );

    });

</script>

</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

代码2:check.php

对页面获得数据进行验证,并执行,返回执行结果

<?php
/**
* 接收传来的电话号码 密码,和数据表中验证,返回一个状态字
*/

//接受数据
$username = $_POST['username'];
$password = $_POST['password'];


//建立数据库的连接
   $pdo = new PDO ('mysql:host=localhost;dbname=stu','root','root');
   $sql = "SELECT COUNT(*) FROM `user` WHERE `email=:username`";
   $stmt = $pdo->prepare($sql);
   $stmt->execute(['username'=>$username]);
   if ($stmt->fetchColumn(0) == 1){
       $status = 0;
       $message = '手机已存在,请登录!';
   }else {
       $insert = "INSERT INTO `user` (`email`,`password`) VALUE (:username,:password)";
       $stmt1 = $pdo->prepare($insert);
       $flag = $stmt1->execute(['username'=>$username,'password'=>$password]); //有可能会插入失败,所有要捕获错误
       if ($flag){
           $status = 1;
           $message ="注册成功,跳转中……";
       }else{
           $status = 2;
           $message ="errors,请稍后再试!";
       }
   }

   echo json_encode(['status'=>$status,'message'=>$message]);


作业2,实现省市区的三级菜单联动

实例

<!doctype html>
<html lang="zh_cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>菜单联动的实现</title>
    <script src="../lib/jquery.js"></script>
</head>
<body>
省:<select name="" id="pro"></select>
市:<select name="" id="city"></select>
区县:<select name="" id="area"></select>

<script>
    $(function () {
        $.getJSON('1.json',function (data) {
            let option = '<option value="">选择(省)</option>';
            $.each(data, function (i) {
                option += '<option value="'+data[i].proId+'">'+data[i].proName+'</option>';
            });
            $('#pro').html(option);
        });

        $('#pro').change(function () {
            $.getJSON('2.json',function (data) {
                let option ='<option value="">选择市区</option>';
                $.each(data,function (i) {
                    if(data[i].proId == $('#pro').val()){  //实现省和市的挂钩
                        option += '<option value="'+data[i].cityId+'">'+data[i].cityName+'</option>';
                    }
                })
                $('#city').html(option);
            })
        })
        $('#city').change(function () {
            $.getJSON('3.json',function (data) {
                let option ='<option value="">选择县区</option>';
                $.each(data,function (i) {
                    if(data[i].cityId== $('#city').val()){
                        option += '<option value="'+data[i].areaId+'">'+data[i].areaName+'</option>'
                    }
                });
                $('#area').html(option);
            });

        })
    })
</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post