如果输入的课程名称已经使用AJAX存在,我想验证我的课程名称字段,但即使我输入的数据还没有在数据库中,我的ajax函数也会返回警报('已经存在')。请帮忙。这是我的代码。感谢。
查看:
<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 :(得分:0)
jQuery和Javascript通常无法访问PHP函数返回的布尔值。因此,返回TRUE
或FALSE
要么对代码的JS部分没有任何影响。
您应该在控制器中尝试echo
某些内容,然后根据该值进行Javascript比较。
答案 1 :(得分:0)
您可以使用来自firebug的console.log()函数。通过这种方式,您将确切知道ajax返回的内容。例如:
success: function(msg) {
console.log(msg);
}
这样你也知道结果变量的类型。