2016-07-23 2 views
1

Я хочу попробовать новый пароль после того, как пользователь введет свое имя пользователя & пароль. Я использую on submit в поле формы, как это, чтобы вернуть ту же функцию, не обновляясь. onsubmit="return login();Как использовать форму отправки на codeigniter?

вид

<?php $this->load->view('header');?> 
    <body> 
     <nav class="navbar navbar-default"> 
      <div class="navbar-header"> 
       <a href="#" class="navbar-brand">Store</a> 
      </div> 
     </nav> 
     <div class="container"> 
      <div class="row"> 
       <div class="col-md-4"></div> 
       <div class="col-md-4"> 
        <div class="panel panel-default login"> 
         <div class="panel-heading">Sign In</div> 
         <div class="panel-body">  
          <form data-toggle="validator" role="form" method="POST" onsubmit="return login();"> 
           <div class="form-group"> 
            <label for="username">Username</label> 
            <div class="input-group"> 
             <span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span> 
             <input type="text" class="form-control" name="username" id="username" placeholder="Username" required> 
            </div> 
           </div> 
           <div class="form-group"> 
            <label for="password">Password</label> 
            <div class="input-group"> 
             <span class="input-group-addon"><span class="glyphicon glyphicon-star"></span></span> 
             <input type="password" class="form-control" id="password" placeholder="Password" required> 
            </div> 
           </div>  
           <div class="alert alert-danger text-center" style="display:none;" id="error"> 
            <p>Invalid username or password !!</p> 
           </div>  
           <button type="submit" class="btn btn-lg btn-success btn-block" id="login"><span class="glyphicon glyphicon-lock frm-general"></span>Login</button> 
          </form> 
         </div> 
        </div> 
       </div> 
      </div> 
     </div> 
     <script src="<?=base_url('assets/js/jQuery-2.1.4.min.js');?>"></script> 
     <script src="<?=base_url('assets/js/bootstrap.min.js');?>"></script> 
     <script src="<?=base_url('assets/js/validator.min.js');?>"></script> 
     <script src="<?=base_url('assets/js/view/login.js')?>"></script> 
    </body> 

</html> 

Ajax

$(function(){ 
    $('#login').submit(function(e){ 
     var username = $('#username').val(); 
     var password = $('#password').val(); 
     URL_GET_ACCESS = BASE_URL+"Login_controller/login"; 
     $.ajax({ 
      url: URL_GET_ACCESS, 
      type: 'POST', 
      data: 'username='+username+'&password='+password; 
     }).done(function(ans){ 
      console.log(resp); 
      if(ans === '0'){ 
       $('#error').show().delay(2000).fadeOut(); 
      }else if(ans === '1'){ 
       window.location.href='<?php echo base_url() ?>home/'; 
      }else{ 
       window.location.href='<?php echo base_url() ?>home/'; 
      } 
     }); 
    }); 
    return false; 
}); 
+0

Привет, Диана, я вижу, что вы новичок в SO. Если вы чувствуете, что ответ решил проблему, отметьте ее как «принятую», нажав зеленую галочку. Это помогает сосредоточиться на более старых SO, которые до сих пор не имеют ответов. – zJorge

ответ

0

Я предполагаю, что проблема заключается в том, что представление в настоящее время срабатывает и принимает вас к URL, определенному вашей форма действия (в данном случае сам по себе). Чтобы предотвратить эту попытку, используйте jQuery e.preventDefault();, как только вы запустите функцию отправки.

Другим решением, которое я часто использую не используя представить кнопки, а вместо этого просто промежутка (<span id='iWillSubmit' class='iLookLikeAButton'>) стилизованной в виде кнопки, а затем присоедините представить функцию в .on('click') на этом диапазона элемента.

Смежные вопросы