0

如果使用 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;
    }
}
4

2 回答 2

0

您可以使用firebug 中的console.log()函数。这样您就可以准确地知道 ajax 返回的内容。例子:

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

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

于 2013-05-08T21:59:12.960 回答
0

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

于 2013-05-08T16:21:06.693 回答