简单的ajax调用数据库来验证电子邮件PHP编码器


simple ajax call to database to verify email php codeigniter

在模糊的电子邮件文本框上,我希望它做一个ajax回调并验证电子邮件是否已经在使用中。

调用正在寻找webmethod,然而,它返回一个空值。我修剪了代码,我得到一个空值:

function chkEmail(email) {
    var prom = $.Deferred();
    console.log(email);
    $('#emailCheckGIF').show();
    $('input[type="submit"]').prop('disabled', true);
    $.ajax({
        url: 'emailAvailable',
        data: { 'email': email },
        success: function (data) {
            console.log(data + ' good');
            prom.resolve(data);
        },
        error: function (jqXHR, textStatus, errorThrown) {
            console.log(errorThrown + ' error');
            prom.reject(errorThrown);
        }
    });
    return prom;
}

我的简化web方法

    public function emailAvailable($email = null) {

        echo json_encode($email);
    }   

在firefox开发工具中,它显示邮件参数被正确传递,服务的响应是NULL

如果我删除json_encode,它会变成一个空白字符串

Please Try This——

My Controller -

  public function checkEmail()
      {
        $email = $_POST['email'];
        $result = $this->federation_model->checkEmail($email);
        echo json_encode($result);
      }

My Model -

public function checkEmail($email)
        {
            $this->db->where('user_email', $email);
            $result=$this->db->get('users')->row_array();
            if(is_array($result))
                {
                    return $result;
                }   
            else
                {
                    return false;
                }
        }

My View——

<div class="col-md-4">
<input name="assoc_email" id="assoc_email" type="email" class="form-control"/>
<span id="line2" class="text-left"></span>
</div>

My Script -

<script type="text/javascript">
    $(document).ready(function(){
        $('#assoc_email').keyup(function(){
            var email = $('#assoc_email').val();
            var filter = /^([a-zA-Z0-9_'.'-])+'@(([a-zA-Z0-9'-])+'.)+([a-zA-Z0-9]{2,4})+$/; 
// my ajax function will call after enter the valid email
            if(email == "" ||  !filter.test(email))
                {
                    $('#line2').html("");
                    $('#submit_assoc').attr('disabled', false);
                }
            if(filter.test(email) && email != "")
                {
                    $.ajax({
                    url:"<?php echo base_url(); ?>federation/checkEmail",
                    type:"post",
                    data:"email="+email,                    
                    success: function(data){
                        var result = JSON.parse(data);
                        if(result == "")
                            {
                                $('#line2').html("<?php echo $this->lang->line('email'); ?>  <?php echo $this->lang->line('available'); ?> ");
                                $('#line2').css('color', 'green');
                            }
                        else
                            {
                                $('#line2').html("<?php echo $this->lang->line('email'); ?>  <?php echo $this->lang->line('already'); ?> <?php echo $this->lang->line('exists'); ?>");
                                $('#line2').css('color', '#f3565d');
                            }
                    }
                    });
                }
        });
    });
</script>