2013-03-06 123 views
0

我试着从JSON和jQuery开始。我根本不是一个JavaScript程序员,所以我正在混合和匹配,并且有很多问题让我的代码工作。我以为有人可以帮助我。jQuery/JSON/CodeIgniter - 表单验证

我有一个使用下面的PHP代码检查电子邮件地址与注册系统的模型:

function is_email_available($email) { 
    $this->db->select('1', FALSE); 
    $this->db->where('LOWER(email)=', strtolower($email)); 
    $this->db->or_where('LOWER(new_email)=', strtolower($email)); 

    $query = $this->db->get($this->table_name); 
    return $query->num_rows() == 0; 
} 

上面的代码是由我的Ajax控制器使用以下被称为,如果注册回报JSON true或false

function email_availability() { 

    // Check to see if the username is available or taken 
    if ($this->users->is_email_available($this->input->post('emailaddress'))) { 
    echo json_encode(TRUE); 
    } else { 
    echo json_encode(FALSE); 
    } 

} 

以上是从我的JS文件中使用以下jQuery的调用,但它似乎并没有在所有的工作。

if(iEmail.val()) { 
    $.ajax({ 
    url: '/ajax/email_availability', 
    data: 'emailaddress=' + iEmail.val(), 
    dataType: 'json', 
    type: 'post', 
    success: function(msg) { 
     iEmail.next('.error').text('This Email Address is not registered'); 
     error = true; 
    } 
    }); 
} 

我想我的jQuery完全关闭,但无法弄清楚。任何帮助将不胜感激。

+0

哪里出错?在请求部分还是在响应中?检查萤火虫,如果您的PHP页面的请求实际上发送 – gpasci 2013-03-06 15:32:37

+0

@gpasci - 它只是返回“真”,如果输入的电子邮件地址不在数据库中 – BigJobbies 2013-03-06 15:35:58

+0

你不需要使用json_encode(true)。相反,你可以只回声1或0.另一件事你会得到任何错误?哪里?您是否尝试过使用萤火虫或Chrome开发人员工具调试您的代码? – 2013-03-06 15:38:56

回答

1

你没有真正检查结果是真是假。

 success: function(msg) { 
      if (msg){ 
       //email is available 
      } 
      else{ 
       //email is not available 
      } 
     }