2017-12-11 6 views
0

ログイン処理後にjqueryを使用して別のコントローラにリダイレクトしたい。 ではなく、ページは自分自身にリダイレクトされます。 iveはjqueryの3つの可能性を試しましたが、他のコントローラーにはリダイレクトできませんでした。他のコントローラにリダイレクトするためのjquery mvc

そうproccess:[ポスト]を形成する - ここでは、ダッシュボードのページへ

https://file.town/download/e2dhyf2yyabpn6kuh79q3dyloをリダイレクト>> controller->バックjquery-にuはそれを試してみたい場合は、ソースコードです。ここで

ここview.php

<?php include('Header.php'); ?> 
<div class="container"> 
<div class="row"> 
    .......... 
     <?php echo form_open('Login/check_login')?> 
      <div class="card"> 
       <div class="card-content"> 
        <div class="row"> 
         <div class="input-field col s6 m12"> 
         <i class="material-icons prefix">account_circle</i> 
         <input id="nim" type="text" class="validate" name="nim"> 
         <label for="nim">NIM</label> 
         </div> 
         <div class="input-field col s6 m12"> 
         <i class="material-icons prefix">visibility_off</i> 
         <input id="password" type="password" class="validate" name="password"> 
         <label for="password">Password</label> 
         </div> 
         <div class="col s6 m12"> 
         <button type="submit" value="login" class="waves-effect waves-light btn #1976d2 blue darken-2 submit1">LOGIN</button> 
         <button type="reset" value="cancel" class="waves-effect waves-light btn #1976d2 blue darken-2">CANCEL</button> 
         </div> 
        </div> 
       </div> 
      </div> 
     <?php echo form_close()?> 
    ....... 
</div> 
</div> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
      $(".submit1").click(function(event) { 
      event.preventDefault(); 
      var nim  = $("#nim").val(); 
      var password = $("#password").val();  
      jQuery.ajax({ 
      type: "POST", 
      url: "<?php echo base_url(); ?>"+"Login/check_login", 
      dataType: 'json', 
      data: {nim:nim, password:password}, 
      success: function(res) { 
       if(res.hasil == 'a'){ 
        swal({ 
         title: "Login sukses", 
         text: "Horeee", 
         showConfirmButton: true, 
         confirmButtonColor: '#0760ef', 
         type:"success"}); 
        window.location.href = "<?php echo site_url('User');?>"; 
       }else if(res.hasil == 'u'){ 
        swal({ 
         title: "Login sukses", 
         text: "Horeee", 
         showConfirmButton: true, 
         confirmButtonColor: '#0760ef', 
         type:"success"}); 
        window.location.href = "<?php echo site_url('User');?>"; 
       }else{ 
        swal({ 
         title: "Login Gagal", 
         text: "Pastikan NIM dan Password Benar", 
         showConfirmButton: true, 
         confirmButtonColor: '#0760ef', 
         type:"error"}); 
       } 
      } 
     }); 
    }); 
}); 

コントローラ

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
class login extends CI_Controller { 

public function __construct() 
{ 
    parent::__construct(); 

    // Load form helper library 
    $this->load->helper('form'); 

    // Load form validation library 
    $this->load->library('form_validation'); 

    // Load session library 
    $this->load->library('session'); 

    // Load database model 
    $this->load->model('Mlogin'); 
} 

public function index() 
{ 
    $this->load->view('login/Vlogin'); 
} 
public function check_login() 
{ 
    $this->form_validation->set_rules('nim', 'NIM', 'required'); 
    $this->form_validation->set_rules('password', 'Password', 'required'); 

    if($this->form_validation->run() == FALSE){ 
     $this->load->view('login/Vlogin'); 
    } 
    else{ 
     $akun = array(
     'nim'  => $this->input->post('nim'), 
     'password' => md5($this->input->post('password')) 
     ); 

     $result = $this->Mlogin->check_akun($akun); 
     if($result != false){ 
      $result = $this->Mlogin->get_information($akun); 
       $session_data = array(
        'nim' => $akun['nim'], 
        'nama' => $result[0]->nama, 
        'gambar'=> $result[0]->name, 
        'akses' => $result[0]->akses, 
        'status' => $result[0]->status, 
        'loggedin' => true, 
        ); 
       $this->session->set_userdata('logged_in', $session_data); 
      if ($result[0]->akses=='a') { 
       $hasil['hasil'] = 'a'; 
       echo json_encode($hasil); 
      } 
      else{ 
       $hasil['hasil'] = 'u'; 
       echo json_encode($hasil); 
      } 
     } 
     else 
     { 
      $hasil['hasil'] = 'false'; 
      echo json_encode($hasil); 
     } 
    } 
} 

それとも任意の代替が存在であります?

+0

あなたのボタンは実際に送信ボタンか標準ボタンですか。あなたのフォームはまだ提出されていると思います。レンダリングされたフォームhtmlを含めていないので、少し難しいです。多分、$( "form")を試してみてください。 – Steve

+0

iveフォームのコードをビューに追加します。どのタイプのボタンを使用しているのか分かりません。 –

+0

ボタンをクリックする代わりにsubmitイベントを使ってみてください。 – charlietfl

答えて

0

あなたのformはあなたのajaxが完了する前に送信しています。

代わりにform submitイベントを処理することをお勧めします。デバッグの目的のためにリダイレクトをアラートに置き換えました。

$(document).ready(function() { 
    $("form").submit(function(event) { 
     event.preventDefault(); 
     var nim  = $("#nim").val(); 
     var password = $("#password").val();  
     jQuery.ajax({ 
      type: "POST", 
      url: "<?php echo base_url(); ?>"+"Login/check_login", 
      dataType: 'json', 
      data: {nim:nim, password:password}, 
      success: function(res) { 
       if(res.hasil == 'a'){ 
        swal({ 
         title: "Login sukses", 
         text: "Horeee", 
         showConfirmButton: true, 
         confirmButtonColor: '#0760ef', 
         type:"success"}); 
        //window.location.href = "<?php echo site_url('User');?>"; 
        alert(res.hasil); 
       }else if(res.hasil == 'u'){ 
        swal({ 
         title: "Login sukses", 
         text: "Horeee", 
         showConfirmButton: true, 
         confirmButtonColor: '#0760ef', 
         type:"success"}); 
        //window.location.href = "<?php echo site_url('User');?>"; 
        alert(res.hasil); 
       }else{ 
        swal({ 
         title: "Login Gagal", 
         text: "Pastikan NIM dan Password Benar", 
         showConfirmButton: true, 
         confirmButtonColor: '#0760ef', 
         type:"error"}); 
       } 
      } 
     }); 
     return false; 
    }); 
}); 
関連する問題