AJAX表单验证以查看课程是否已存在始终返回true

时间:2013-05-08 15:53:37

标签: ajax codeigniter

如果输入的课程名称已经使用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;
    }
}

2 个答案:

答案 0 :(得分:0)

jQuery和Javascript通常无法访问PHP函数返回的布尔值。因此,返回TRUEFALSE要么对代码的JS部分没有任何影响。 您应该在控制器中尝试echo某些内容,然后根据该值进行Javascript比较。

答案 1 :(得分:0)

您可以使用来自firebug的console.log()函数。通过这种方式,您将确切知道ajax返回的内容。例如:

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

这样你也知道结果变量的类型。