0

ログインページがあり、誰かがログインしようとすると、サーバーにajaxリクエストを送信します。ajaxはサーバーに移動し、ログインします。確認できました。しかし、問題は、私のjQueryがJSONを受信して​​いないように見えることです。

私のコントローラーの機能は次のとおりです。

public function login(){
    $this->load->model('users_model');
    if((!!$this->input->post('email')) || (!!$this->input->post('password'))){
        $ret = $this->users_model->login($this->input->post('email'), $this->input->post('password'));
        echo json_encode(array('status' => "OK", 'msg' => 'Logged in!')); //also tried return
    }else{
        echo json_encode(array('status' => 'FAIL', "msg" => 'Invalid Email or Pass'));
    }
}

AJAX関数は次のとおりです。

<script type="text/javascript">
    $(document).ready(function() {
        $("#login").ajaxForm(function(json) {
            alert(json);
        if(json.status == true) {
                alert(json.msg);
            //window.location = '<?php echo base_url(); ?>';
            } else {
                alert("Problem");
                $(".error_msg").html(json.msg);
            };
        });
    });
</script>

json変数にアラートを送信すると空白になり、json.msgを実行するとundefinedと表示されます。だから...コールバック、jsonオブジェクト、または任意の種類のオブジェクトを提供するためにこれを取得するにはどうすればよいですか?修正方法だけでなく、問題を理解できるように説明してください。どうもありがとう!

編集:ここにもフォームがあります:

<span class="error_msg"></span></br>

<form id="login" action="<?php echo base_url(); ?>users/login" method="POST" enctype="multipart/form-data">
    Email: <input name="email" type="text"/></br>
    Password: <input type="password" name="password"></br>
    <input type="submit"/>
</form>
4

1 に答える 1

1

ああ、わかったと思います。

これはあなたが使用しているプラ​​グインですか?http://www.malsup.com/jquery/form/#api

その場合は、ajaxSubmitではなく、を使用してくださいajaxForm

オンラインの他の例は次のようなことをします:

$(document).ready(function() {
    $('#login').submit(function() {
    $("#login").ajaxSubmit({
        success: function(json) {
            alert(json);
            if(json.status == true) {
                alert(json.msg);
                //window.location = '<?php echo base_url(); ?>';
            } else {
                alert("Problem");
                $(".error_msg").html(json.msg);
            }
        }
    });
    return false;
    });
});
于 2013-03-27T03:18:11.703 に答える