2013-05-08 99 views
0

我想驗證我的課程名稱字段,如果輸入的課程名稱已經存在使用AJAX,但我的ajax函數總是返回警報('已存在'),即使我輸入的數據還沒有在數據庫中。請幫忙。這是我的代碼。謝謝。AJAX表單驗證,看看課程是否已經存在總是返回true

查看:

<script type="text/javascript"> 
var typingTimer; 
var doneTypingInterval = 3000; 


$('#course_name').keyup(function(){ 
typingTimer = setTimeout(check_course_name_exist, doneTypingInterval); 
}); 


$('#course_name').keydown(function(){ 
clearTimeout(typingTimer); 
}); 



function check_course_name_exist() 
    { 

    var course_name=$("#course_name").val(); 

    var postData= { 
    'course_name':course_name 
    }; 


    $.ajax({ 
     type: "POST", 
     url: "<?php echo base_url();?>/courses/check_course_name_existence", 
     data: postData, 
     success: function(msg) 
     { 


     if(msg == 0) 
     { 
     alert('Already Exist!'); 
     return false; 
     } 

     else 
     { 
     alert('Available'); 
     return false; 
     } 


     return false; 
     } 
    }); 
    $("html, body").animate({ scrollTop: 0 }, 600); 
    return false; 
    } 



    </script> 

控制器:

function check_course_name_existence() 
{ 
$course_name = $this->input->post('course_name'); 

$result = $this->course_booking_model->check_course_name_exist($course_name); 
if ($result) 
{ 
    return true; 
} 
else 
{ 
    return false; 
} 
} 

型號:

function check_course_name_exist($course_name) 
{ 

    $this->db->where("course_name",$course_name); 
    $query=$this->db->get("courses"); 

    if($query->num_rows()>0) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

回答

0

你可以使用螢火蟲的console.log()函數。這樣你就可以確切知道ajax返回的內容。例如:

success: function(msg) { 
    console.log(msg); 
} 

這樣你也知道結果變量的類型。

+0

我試過console.log(味精),但它沒有返回任何東西。我能在哪裏看到它的輸出? – Eli 2013-05-09 00:41:01

+0

您必須使用[Firebug](https://getfirebug.com/downloads/)擴展程序安裝在[Firefox](http://www.mozilla.org/en-US/firefox/new/)中加載網站。頁面加載後,按** F12 **。它會打開** Firebug **窗口。之後,單擊控制檯選項卡,**激活它並**重新加載**網頁。在那裏你會看到** any ** ajax請求的結果。 – machineaddict 2013-05-09 06:31:36

0

的jQuery和Javascript一般,沒有訪問到的PHP函數是布爾值返回。所以他們要麼返回TRUE要麼FALSE對代碼的JS部分沒有任何影響。 你應該嘗試在控制器中使用echo,然後根據該值進行Javascript比較。