我解決我的問題總是解決爲真。我正在提交忘記密碼的表單,並且我只有一個字段,即電子郵件。我根據電子郵件檢查數據庫中的記錄,如果記錄被返回,我將json設置爲true,否則設置爲false。這裏是我笨控制器代碼:JSON響應總是返回true
public function checkEmail()
{
// set the validation rules
$this->form_validation->set_rules('checkemail', 'E-Mail', 'valid_email');
$this->form_validation->set_error_delimiters('<br /><p class=jsdiserr>', '</p><br />');
// if validation is passed
if ($this->form_validation->run() != FALSE)
{
$ids=array();
$ids[0]=$this->db->where('email', $this->input->post('checkemail'));
$query = $this->backOfficeUsersModel->get();
if($query)
{
$data = array(
'userid' => $query[0]['userid'],
'username' => $query[0]['username'],
'password' => $query[0]['password'],
'firstname' => $query[0]['firstname'],
'lastname' => $query[0]['lastname'],
'email' => $query[0]['email']
);
$currentUser = array();
$currentUser = $this->session->set_userdata($data);
echo json_encode(array("success" => "true"));
} else {
echo json_encode(array("success" => "false"));
}
// form validation has failed
} else {
$errorMessage = "Wrong email!";
}
} // end of function checkEmail
現在,當我在我的javascript文件檢查結果,我得到總是如此。這裏是代碼:
$("#formSendPassword").submit(function(e){
e.preventDefault();
var email = $(this).find("#checkemail").val();
var obj = {email: email};
var url = $(this).attr("action");
$.post(url, obj, function(r){
if(r.success == "true") {
console.log(r.success);
$('#forgotPasswordForm').hide();
$('#successMailMessage').fadeIn()
} else {
$('#forgotPasswordForm').hide();
$('#errorMailMessage').fadeIn()
}
}, 'json')
})
任何人都可以幫我一個這個嗎?
問候,卓然
如果我在php中打印結果,我會得到正確的結果。但是,當我嘗試console.log輸出alwasy評估successMailMessage,即使它應該顯示errorMailMessage。任何人? – Zoran 2013-02-22 14:52:13
'$(this)的輸出是什麼。find(「#checkemail」)。val();' – 2013-02-24 03:27:12
,你缺少三個分號,這個語句在if和else'$('#successMailMessage')。fadeIn()'中。並在'$ .post'結尾後面。所以檢查出來。並讓我知道 – 2013-02-24 03:34:48