簡體   English   中英

ajax在codeigniter中不起作用,不在控制器中發布或啟動方法

[英]ajax is not working in codeigniter, doesn't post or start the method in the controller

我試圖搜索我的問題,但沒有找到任何東西,也無法調試,我試圖在do_login方法和$("#frm_login").submit(function(event)中添加斷點到達這里,這是signin_view Ajax腳本的代碼

<script type="text/javascript">
$(document).ready(function() {
$("#frm_login").submit(function(event)
{
event.preventDefault();
$.ajax({
url: '<?php echo site_url('signin/do_login'); ?>',
type: 'POST',
data:{ username : $('#username').val(),password : $('#password').val()},
success:function(data) {
    if (data ==='logged_in')
    {
        alert("working");
    }
    else if(data === 'no')
    {
                    alert("problem");

    }
}
});
           });
                          });

這是表格

  <form id='frm_login' name='frm_login' action="#" >

                    <input type="text" id='username' name="username" size="15" placeholder="اسم المستخدم">                              

<input type="password" id="password" name="password" size="15" placeholder="كلمة المرور" >                              
                            <div id="message"> </div>   
                            <input type='submit' value="تسجيل الدخول">
    </form>

這是登錄控制器

if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class signin extends CI_Controller
{



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

$this->load->view('signin_view');
}

function do_login()
{
{$this->load->model("M_accces");

$POSTINGDATA = $this->input->post('username');
if(isset($POSTINGDATA))
{
$user = $this->m_access->check_user(
        $this->input->post('username'),
        md5($this->input->post('password'))
        );
if($user == '1') {
echo 'logged_in';
} else {
echo 'no';
    }
}

這是M_accces模型

class M_access extends CI_Model {
public function check_user($username,$password) {
$this->query = $this->db->select('COUNT(*)')
    ->from('users')
    ->where(array('username'=>$username,'password'=>$password))
    ->limit(1)->get();
return $this->query->row_array();
}
}

自動加載

$autoload['libraries'] = array('database', 'session');
$autoload['helper'] = array('url','file','form','security');

誰能幫忙為什么它不起作用?

該頁面只是刷新。 謝謝

您忘記將模型加載到控制器中

$this->load->model("M_accces");

您可以將其放在do_login()函數/方法之后或在構造函數中

薩拉姆

刪除文檔就緒函數並拖動您的js函數,並在關閉表單后將其放置,即可使用。 注意:在瀏覽器中按f12鍵,然后選擇網絡,然后查看請求是否成功發送。

如果請求已成功發送並且程序仍然無法運行,請單擊請求,然后預覽,您將看到顯示的錯誤。

您的Ajax請求使用了錯誤的選擇器

$.ajax({
url: '<? echo site_url('signin/do_login'); ?>',
type: 'POST',
async : false,
// Note # selector.
data:{ username : $('#username').val(),password : $('#password').val()},
success:function(data) {
    if (data ==='logged_in')
    {
        alert("working");
    }
    else if(data === 'no')
    {
                    alert("problem");

    }
}
});

在控制器方法中,檢查$ POSTINGDATA是否為空值。

function do_login()
{
$POSTINGDATA = $this->input->post('username');
// check for empty. 
if(isset($POSTINGDATA) && !empty($POSTINGDATA))
{
$user = $this->m_access->check_user(
        $this->input->post('username'),
        md5($this->input->post('password'))
        );
if($user == '1') {
echo 'logged_in';
} else {
echo 'no';
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM