我有一个编辑模型,包含2个表单,名称和电子邮件,我在表单中放了一些JavaScript,因此当用户编辑其名称/电子邮件时,程序将检查名称/电子邮件是否已在数据库中(如果已存在)数据库将出现警报,显示名称/电子邮件已经存在。

问题是,对于名称形式而言,代码可以完美地工作,但是当我以电子邮件形式尝试使用它时,即使该数据库中不存在该电子邮件,它也只能读取if语句,该语句将说错误电子邮件已经存在。

重要的一件事是codeigniter中的URL无法读取像@这样的符号,因此不能在电子邮件验证中使用用于名称验证的相同代码,因此我做了一个新功能,所有与我相关的代码如下:

模型

function email_exists($email)
{
    $this->db->where('email', $email);
    $query = $this->db->get('petugas');
    if( $query->num_rows() > 0 ){ return TRUE; } else { return FALSE; }
}


控制者

public function register_email_exists()
{
    if (array_key_exists('email',$_POST)) {
        $email=$this->input->post('email');
        if ($this->Crud->email_exists($email) == TRUE ) {
            echo false;
        } else {
            echo true;
        }
    }
}


Java脚本

var check5;
$("#editemail").bind("keyup change", function(){
    var editemail = $(this).val();
    $.ajax({
        url:'kasir/cekEmailEdit2',
        type:"POST",
        data:{send:true, email:email},
        success:function(data){ alert(email);
            if (editemail!=oldEmail){
                if(data==true){
                    //email not exist in database, so form can be edit
                    $("#report5").text("berhasil karna nama email baru");
                    check5=1;
                }else{
                    //email exist in database, show alert
                    $("#report5").text("*email sudah terpakai");
                    check5=0;
                }
            }else{
                //success submit form because no data has been changed
                $("#report5").text("berhasil karna gajadi ganti email");
                check5=1;
            }
        }
    });
});

最佳答案

尝试这个:

function email_exists($email)
{
    return $this->db->where('email', $email)->count_all_results('petugas');
}

public function register_email_exists()
{
    $result = array(
        'status' => 1 // denotes exists
    );

    if($this->input->post('email') != ''){
        $email = $this->input->post('email');
        if($this->Crud->email_exists($email)){
            $result['status'] = 1;
        }else{
            $result['status'] = 0;
        }
    }

    echo header('Content-Type: application/json');
    echo json_encode($result);
}


JS部分:

success:function(data){
    data = JSON.parse(data);
    if(data.status){
        alert('Exists');
    }else{
        alert('Not exists');
    }
}

07-24 18:00
查看更多