首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引导formvalidation.io远程验证器MySQL PHP

引导formvalidation.io远程验证器MySQL PHP
EN

Stack Overflow用户
提问于 2015-07-31 20:43:54
回答 1查看 2.2K关注 0票数 1

我在获取模态表单时遇到了一些问题,使用PHP从MySQL数据库验证用户名。

下面是我的PHP脚本来验证用户名,当我单独运行它时,它可以工作,但是当它不会从远程验证器调用时。

PHP代码:

checkUsername.php

代码语言:javascript
复制
<?php

    $isAvailable = true;

    //get the username  and password
    $uname = trim($_POST['username']);
    $umail = trim($_POST['email']);

    //connect to database   
    require_once '/php-includes/dbconfig.inc.php';

    $stmt = $DB_con->prepare("SELECT username, email FROM member WHERE username=:uname OR email=:umail");
    $stmt->execute(array(':uname'=>$uname, ':umail'=>$umail));
    $row=$stmt->fetch(PDO::FETCH_ASSOC);


    if($row['username']==$uname) {
        $isAvailable = false; 
    }

    // Finally, return a JSON
    echo json_encode(array('valid' => $isAvailable));
?>

这是我从http://formvalidation.io/examples/adding-warning-validation-state/中使用的http://formvalidation.io/examples/adding-warning-validation-state/脚本

代码语言:javascript
复制
$(document).ready(function() {
    $('#registerForm')
        .formValidation({
            framework: 'bootstrap',
            icon: {
                valid: 'glyphicon glyphicon-ok',
                invalid: 'glyphicon glyphicon-remove',
                validating: 'glyphicon glyphicon-refresh'
            },
            fields: {
                userName: {
                    validators: {
                        notEmpty: {
                            message: 'The user name is required'
                        },
                        remote: {
                            url: 'checkUsername.php'
                        }
                    }
                }
            }
        })
        // This event will be triggered when the field passes given validator
        .on('success.validator.fv', function(e, data) {
            // data.field     --> The field name
            // data.element   --> The field element
            // data.result    --> The result returned by the validator
            // data.validator --> The validator name

            if (data.field === 'userName'
                && data.validator === 'remote'
                && (data.result.available === false || data.result.available === 'false'))
            {
                // The userName field passes the remote validator
                data.element                    // Get the field element
                    .closest('.form-group')     // Get the field parent

                    // Add has-warning class
                    .removeClass('has-success')
                    .addClass('has-warning')

                    // Show message
                    .find('small[data-fv-validator="remote"][data-fv-for="userName"]')
                        .show();
            }
        })
        // This event will be triggered when the field doesn't pass given validator
        .on('err.validator.fv', function(e, data) {
            // We need to remove has-warning class
            // when the field doesn't pass any validator
            if (data.field === 'userName') {
                data.element
                    .closest('.form-group')
                    .removeClass('has-warning');
            }
        });
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-06 21:45:25

让它像这样工作

代码语言:javascript
复制
                remote: {
                    url: '/includes/checkUser.inc.php',
                    message: {
                        en_US:  "This usenrame is already taken, please choose another one",
                        fr_FR:  "Ce nom d'utilisateur est déjà pris, 
                    },
                    data: {
                        type: 'username'
                    },
                    type: 'POST',
                    delay: 1000
                }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31754879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档