2013-10-15 72 views
-4

我有一個登錄/註銷方法位於我的家庭控制器。所有由不同控制器生成的頁面上都有用戶名和密碼文本框。Ajax請求到codeigniter中的另一個控制器不起作用

我有一個常見的jquery文件,用於我所有的視圖,它使用ajax將任何頁面的用戶名和密碼發佈到主控制器登錄/註銷方法。但是這似乎不起作用,因爲這些頁面是由不同的控制器生成的,而不是由主控制器生成的。當我檢查螢火蟲時,我發現Ajax腳本中提到的網址正被追加到該頁面的控制器中,並且沒有發生實際的重定向。

我已經看到,通常建議在這種情況下使用自制助手。但我不知道如何通過jQuery的Ajax使用。

首頁控制器

   function validate_login_user() 
      { 
        $this->load->model('model'); 

        if ($this->sristi_model->validate_login()) 
        { 
         $data = array (
          'username' => $this->input->post('username'), 
          'is_logged_in' => true 
         ); 
         $this->session->set_userdata($data); 
         $this->load->view('includes/logged_in.php'); 
         //return true; 
        }else{ 
         $this->load->view('includes/loginerror.php'); 
         //return true; 
        } 
      } 

JavaScript的

$('#sitelogin').on('click', '.login', function(){ 
     var username = $('#username').val(); 
     var password = $('#password').val(); 
     if (username == "" || password == ""){ 
      $('#error').fadeIn(200).delay(1000).fadeOut(1000); 
      return false; 
     }else if(username !== undefined && password !== undefined) 
     { 
      $.ajax({ 
       url:"home/validate_login_user", 
       type:'POST', 
       data:{username:username,password:password}, 
       cache:false, 
       success:function(msg){ 
        $('#sitelogin').html(msg).hide().fadeIn(800); 
        $('#loginerror').delay(2000).fadeOut(1000); 
       } 
      }); 
      return false; 
     }else{ 
      return false; 
     } 
    }); 

當我嘗試通過產品控制登錄我得到這個在Firebug

URL: POST validate_login_user 
localhost/ci/product/categories/localhost/ci/home/validate_login_user 

Status: 500 Internal Server Error 

Domain: localhost 

Size: 1.6 KB 

Remote IP: [::1]:80 

讓你找到的東西我知道...

+1

你能提供...任何代碼嗎? – benastan

+0

它更多的是一個概念性問題,因此我想沒有代碼就問它。你想要哪部分代碼? – Sanjit

+0

Firebug的輸出,用於登錄/註銷的家庭控制器代碼,用於執行請求的JavaScript代碼。甚至可能是登錄表單的html。 – benastan

回答

0

我在某種程度上能夠在我的通知中看到此答案,但我在此頁面上看不到它。在斜槓前面加上ajax url做了這項工作,現在一切正常。

感謝誰評論說。