TP5使用bootstrapvalidator进行异步验证邮箱

js验证

/**
 * Created by HONGXIN on 2017-10-23.
 */
$(function () {
    $('form').bootstrapValidator({

        message: 'This value is not valid',
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },

        live: 'disabled',//验证失败后,提交按钮仍然是可选状态

        fields: {
            email: {
                message: '用户名验证失败',//默认
                verbose: false,
                validators: {
                    notEmpty: {
                        message: '邮箱不能为空'
                    },
                    emailAddress: {
                        message: '邮箱地址格式有误'
                    },
                    remote: {
                        url: '/ajax_email',
                        message:"此邮箱已经注册",
                        type: "post",
                        dataType: 'json',
                        data: {
                            //默认传递的就是输入框的值
                        },
                        delay: 500,//延迟效果
                    },
                }
            },
            password: {
                validators: {
                    notEmpty: {
                        message: '邮箱地址不能为空'
                    },
                    stringLength: {
                        min: 6,
                        max: 18,
                        message: '用户名长度必须在6到18位之间'
                    },
                },
            },
            password2: {
                validators: {
                    notEmpty: {
                        message: '确认密码不能为空'
                    },
                    identical: {
                        field: 'password',
                        message: '两次密码必须一致'
                    }
                }
            },
            username:{
                validators: {
                    notEmpty: {
                        message: '用户名不能为空'
                    },
                    stringLength: {
                        min: 2,
                        max: 8,
                        message: '用户名长度必须在2到8位之间'
                    }
                }
            }

        }
    });
});

TP5处理

    public function ajax_email(){
        //该message可以为空,它替换JS验证的message属性
       echo json_encode(['valid'=>false,'message'=>'验证码不正确']);

    }

js验证几个注意点

  • verbose: false,代表js验证合法后再异步后台验证,这样减少服务器压力
  • data: {} ,默认传递的就是输入框的值,所以一般不用写该属性,或者为空即可

后台注意点

  • 注意不是return而是echo
  • 返回json格式 {'valid':true[,'message':'验证成功']}

参考链接: 使用bootstrapvalidator的remote验证经验

参考链接:bootstrapvalidator remote $.ajax请求

参考链接:BootstrapValidator超详细教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TP5 中实现异步任务可以使用 Swoole 扩展或者 PHP 原生的多进程和多线程技术。 1. Swoole 实现异步任务 Swoole 是一个 PHP 的异步、并行、高性能网络通信框架,它提供了异步、多进程、协程等多种编程模式,可以实现高性能的异步任务。 具体实现方式可以参考以下代码: ```php use think\facade\Db; use Swoole\Process; // 创建异步子进程 $process = new Process(function (Process $worker) { // 子进程中执行异步任务 // ... // 任务执行完成,向主进程发送消息 $worker->push('task finished'); }); // 启动子进程 $process->start(); // 等待子进程返回结果 echo $process->pop(); ``` 上述代码创建了一个异步子进程,然后在子进程中执行异步任务,最后向主进程发送消息。 2. PHP 原生实现异步任务 PHP 原生提供了多进程和多线程技术,可以实现异步任务。 具体实现方式可以参考以下代码: ```php use think\facade\Db; // 创建新进程 $pid = pcntl_fork(); if ($pid === -1) { // 创建进程失败 } else if ($pid) { // 父进程中 // ... // 等待子进程返回结果 pcntl_wait($status); } else { // 子进程中执行异步任务 // ... // 任务执行完成,退出子进程 exit(); } ``` 上述代码使用 `pcntl_fork` 函数创建新进程,并在子进程中执行异步任务,最后退出子进程。在父进程中可以等待子进程返回结果。 需要注意的是,PHP 原生的多进程和多线程技术需要注意进程间的数据同步和通信,以避免数据不一致和死锁等问题。 总之,TP5 实现异步任务可以通过 Swoole 扩展或者 PHP 原生的多进程和多线程技术来实现。需要根据实际情况选择合适的技术方案,并注意数据同步和通信的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值