2013-05-08 98 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比较。