2013-03-06 121 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 
      } 
     }