2017-04-22 4 views
0

私は内部ビューの値をコードイグナイターコントローラに渡そうとしています。私はそれをAjaxスクリプトに渡そうとしています。私はどのようにデバッグし、コントローラで何が起こっているかについてブラウザを通して見る方法を知らない。親切に私を助けて!私はうんざりしている。あなたが私をフィドルに見せてくれれば、私は素晴らしいだろう。ci内のビューからコントローラへデータを渡しているときにエラーが発生しました

これが私の見解コードです:

<!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を渡してみましたか?これを試してみてください。 –

+0

はい私はURL形式のアクションにしか入っていません – Keynes

+0

login/login_checkの代わりにフォームアクションindex.php/login/login_checkを試してみてください。 –

答えて

0

私は問題の解決策を見つけました。プログラミングで2つのミスを犯しました

  1. 最初は、私のChromeブラウザでデバッグできませんでした。だから、私は 'F12'を押して、私は 'ネットワーク'タブに行って、 'すべて'オプションをクリックしたデバッグのために。それ以外のところは「XHR」で十分でした。
  2. 私のautoload.phpでciの中に 'database'、 'session'ヘルパーを追加するのを忘れました。

    これらの2つの問題を修正した後、Internal Server Error: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は、フォームをより詳しく説明する必要があります。フォーム上

フォームでこのdoesntのラインアップ

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

それはIDがLG-形式であると言います。 IDはフォーム上でもlogincheckする必要があります

関連する問題