2016-05-27 6 views
0

Войти Проблему с AJAX и CodeIgniter, Войти не удалась, то выводит сообщение об ошибке в сценарии** CodeIgniter Аякс вопрос Логин **

Аякс сценария дозы не показывает какие-либо действий

<script> 
    $('#login_form').submit(function (e) 
     { 
      e.preventDefault(); 
      var uname = $('#uname').val(); 
      var upassword = $('#upassword').val(); 
      if (uname == "" || upassword == "") 
      { 
       $('#error').show().html('All Fields are required'); 
      } else { 
       $('#error').html("").hide(); 
       $.ajax({ 
        type: "POST", 
        url: "<?= base_url(); ?>User_controller/login_autho/", 
        // datatype: 'json', 
        data: {uname: uname, upassword: upassword}, 
        success: function (data) { 

         if (data == '1') 
         { 
         window.location.replace("<?php echo base_url(); ?>User_controller/profile"); 
         } else { 
          alert('invalid username'); 
         } 
        } 
       }); 
       return false; 
      } 
     }); 
</script> 

Это контроллер CodeIgniter проверить логин и открыть файл profile.php

public function login_autho() { 
    $data = array(
     'uname' => $this->input->post('uname'), 
     'upassword' => $this->input->post('upassword') 
    ); 
    $result = $this->login_model->login_user($data); 
    if ($result == TRUE) { 
     //adding data to session 
     $this->load->view('header'); 
     $this->load->view('user_profile'); 

    } else if($result==FALSE){ 
     $this->load->view('user/header'); 
     $this->load->view('user/login'); 
    } 
} 
+0

Фирса t всего в вашем состоянии контроллера ** if ($ result == TRUE) ** вы возвращаете что-то вроде ** return '1' ** или ** echo '1' **. Если вы не вернете что-либо из своего контроллера, ajax can not обработает ответ ** данные ** –

+0

Ваша проблема заключается в функции * login_autho() *. Ваш вызов ajax ожидает, что результат будет ** ** **, но вы фактически возвращаете большой фрагмент html в виде заголовков и профилей. –

+0

, который отлично работает, но у меня есть еще один вопрос: если имя пользователя и пароль недействительны, то как обращаться с ним – sms

ответ

0

Это позволит решить ваши нужно

if ($result == TRUE) 
{ 
    return '1'; 
} 
else if($result==FALSE) 
{ 
    return '0'; 
} 

В вашем АЯКСЕ Succes функция делает эти

success: function (data) 
{ 
    if (data == '1') 
    { 
     window.location.replace("<?php echo base_url(); ?>User_controller/profile"); 
    } 
    else 
    { 
     window.location.href("<?php echo base_url(); ?>User_controller/login"); 
    } 
} 
0

Возвращаемого значение 1 или 0 от контроллера

public function login_autho() 
{ 
    $data = array(
    'uname' => $this->input->post('uname'), 
    'upassword' => $this->input->post('upassword') 
    ); 
    $result = $this->login_model->login_user($data); 
    if ($result == TRUE) { 
     echo 1; 

    } else if($result==FALSE){ 
     echo 0; 
    } 
} 
0

Благодаря это работает для меня

public function login_autho() 
    { 
     $data = array(
     'uname' => $this->input->post('uname'), 
     'upassword' => $this->input->post('upassword') 
     ); 
     $result = $this->login_model->login_user($data); 
     if ($result == TRUE) { 
      echo 1; 

    } else if($result==FALSE){ 
     echo 0; 
    } 
} 
Смежные вопросы