【问题标题】:jQuery / JSON / CodeIgniter - Form validationjQuery / JSON / CodeIgniter - 表单验证
【发布时间】:2013-03-06 15:25:13
【问题描述】:

我正在尝试从 JSON 和 jQuery 开始。我根本不是 JavaScript 程序员,所以我正在混合和匹配,并且在让我的代码正常工作时遇到了很多问题。我想有人可以帮助我。

我有一个模型,它使用以下 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);
  }

}

上面是使用以下 jQuery 从我的 JS 文件中调用的,但它似乎根本不起作用。

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 完全关闭,但无法弄清楚。任何帮助将不胜感激。

【问题讨论】:

  • 错误在哪里?在请求部分或响应中?如果实际发送了对您的 php 页面的请求,请检查 firebug
  • @gpasci - 如果输入的电子邮件地址不在数据库中,它只会返回“TRUE”
  • 你不需要使用 json_encode(true)。相反,你可以只回显 1 或 0。另一件事你有什么错误吗?在哪里?您是否尝试过使用 firebug 或 chrome 的开发人员工具调试代码?
  • 在success()回调中发布console.log(msg)日志
  • 它说错误,但在我检查之前页面会重新加载。

标签: php jquery json codeigniter


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 2016-09-05
    • 2021-10-09
    • 1970-01-01
    相关资源
    最近更新 更多