2017-04-22 161 views
0

我正面臨內部服務器錯誤:500,雖然我嘗試將值從我的視圖傳遞給代碼點火器控制器。我正試圖通過ajax腳本。我不知道如何通過瀏覽器調試和查看控制器中發生的事情。請幫助我!我有點卡住..如果你在小提琴中展示我,我會很棒。將數據從視圖傳遞到控制器的錯誤

這是我的看法代碼:

<!DOCTYPE HTML> 
<html lang="en-US"> 
<head> 

<meta charset="UTF-8"> 
<title>login</title> 
<link rel="stylesheet" href="<?php echo base_url()?>assets/login/style.css" /> 
<link href='http://fonts.googleapis.com/css?family=Oleo+Script' rel='stylesheet' type='text/css'> 
<script type="text/javascript" src="<?php echo base_url()?>assets/login/jquery-1.7.min.js"></script> 
<script type="text/javascript"> 
javascript:window.history.forward(1); 
$(document).ready(function(){ 
    $("#logincheck").click(function(){ 
     var action = $("#lg-form").attr('action'); 
     var username = $("#username").val(); 
     var password = $("#password").val(); 
     //alert($("#username").val()); 
     $.ajax({ 
      type: "POST", 
      url: action, 
      data: {u_name : username,pwd : password}, 
      success: function(response) 
      { //$('#message').html(response).fadeIn('slow'); 
       if(response == "success") 
        location.href = "<?php echo site_url();?>/Dashboard/index"; 
       else 
       $("#message").html('<p class="error">ERROR: Invalid username and/or password.</p>'); 
      } 
     }); 
     return false; 
    }); 
}); 
</script> 
</head> 
<body> 

<div class="lg-container"> 
<h1>Admin Area</h1> 

<form action="<?php echo site_url('login/login_check');?>" id="lg-form" name="lg-form" method="post"> 

     <div> 
      <label for="username">Username:</label> 
      <input type="text" name="username" id="username" placeholder="username"/> 
     </div> 

     <div> 
      <label for="password">Password:</label> 
      <input type="password" name="password" id="password" placeholder="password" /> 
     </div> 

     <div style="text-align:center;">     
      <button type="submit" id="logincheck">Login</button> 
     </div> 
     </form> 
    <div id="message"></div> 
</div> 
</body> 
</html> 

我的控制器代碼:

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Login extends CI_Controller { 
public function index() 
    { 
     $this->load->view('login_page/login'); 
    } 
public function login_check() 
    { print_r($this->input->post());exit; 
     $res['username'] = $this->input->get('u_name'); 
     $res['password'] = md5($this->input->get('pwd')); 

     $this->load->model('Login_m'); 
     $i=$this->Login_m->login_data($res); 
     if($i ==1) 
     { 
      echo "success"; 
     } 
    } 
} 

和我的標準守則是:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Login_m extends CI_Model 
    { 

    function login_data($data) 
     { //print_r($data);exit; 

      $query =$this->db->query('select e.* from ins_entity e where e.entity_uname =? and e.entity_pwd =?',array($data['username'],$data['password']))->row_array(); 
      if(count($query) > 0) 
      { 

         $newdata = array(
         'id' => $query['entity_id'], 
         'name' => $query['entity_name'], 
         'uname' => $query['entity_uname']); 
         $this->session->set_userdata($newdata);     
         return 1; 
      } 
      else 
      { 
       //echo "Invalid Credentials at present"; 
       return 0; 

      } 
     } 

    } 


?> 
+0

嘿,你有沒有試過通過表單操作:index.php/login/login_check?嘗試這個對我來說,它的作品,而與AJAX調用控制器功能。 –

+0

是的,我已經通過了url表單動作 – Keynes

+0

我的意思是說,嘗試表單操作index.php/login/login_check而不是login/login_check,因爲它在我的項目中爲我工作。 –

回答

0

我剛剛發現了問題的解決方案。我在編程時犯了兩個錯誤

  1. 最初,我無法在我的Chrome瀏覽器中進行調試。因此,對於我按'F12'進行調試,我進入'網絡'選項卡並單擊'全部'選項。其他'XHR'對我來說已經足夠了。
  2. 在我的autoload.php裏面,我忘了添加'database','session'助手。

    我糾正了這兩件事後,我沒有得到內部服務器錯誤:500,雖然我嘗試將我的視圖中的值傳遞給代碼點火器控制器。感謝所有幫助過我的人!

0

試試這個,而不是使用

var action = $("#lg-form").attr('action'); // YOU dont need this 
var username = $("#username").val(); 
var password = $("#password").val(); 

而是使用

var data = $("#lg-form").serialize() //should be logincheck 

你有一個奇怪的命名約定。您的表單的ID應該更詳細地描述表單。

這並不線與您的形式

$("#logincheck").click(function(){ 

在您的形式,它說的ID是LG-形式。該ID也應該是logincheck的表格

相關問題