这是将触发登录的事件
$('#btnLogin').click(function(){
//var data = $('#loginForm').serialize();
var email = $('#loginEmail').val();
var password = $('#loginPass').val();
var result = '';
if( email.trim() =='' ){
//username.addClass('alert-danger');
alert('email is required');
}else{
//username.removeClass('alert-danger');
result +='1';
}
if( password.trim()==''){
alert('password is required');
}else if(password.length < 8){
alert('password length must be atleast 8 characters');
}else{
//password.removeClass('alert-danger');
result +='2';
}
/*var postData = {
'email' : email,
'password' : password
};*/
if (result=='12') {
$.ajax({
type: "POST",
url: '<?php echo site_url('login/identifying_usertype'); ?>',
data: { email : email, password : password },
dataType: 'json',
success: function(response){
//console.log(response);
//alert(email);
$('#myModal').modal('hide');
},
error: function (XHR, status, error){
console.log('error', error);
}
});
}
});
这是我的控制者:
public function identifying_usertype()
{
if( $email = $this->input->post('email') )
{
echo json_encode( array('email' => $email) );
}
else
{
echo json_encode( array('error' => 'No email address') );
}
}
现在我在我的控制台上获得{“错误”:“无电子邮件地址”}没有错误。有什么我想念的吗?在我的ajax上我添加了dataType:'json',我将url从base_url更改为site url
答案 0 :(得分:1)
由于您有success: function(response){
,因此Ajax的返回值位于变量response
上,而不是email
上。这样做可以解决您的问题:
success: function(response){
email = response;
alert(email);
//$('#myModal').modal('hide');
},
答案 1 :(得分:0)
1)在CodeIgniter中创建指向您自己的控制器/方法之一的链接的最佳方法是使用site_url(),而不是base_url()。使用site_url,您的网址变为:
url: '<?php echo site_url('login/identifying_usertype'); ?>',
2)jQuery的$ .ajax需要你声明一个dataType。虽然如果你把它留下来jQuery会试图猜测它是什么,但我发现它错了很多次。大多数人会使用'json':
dataType: 'json',
3)在你的控制器中,如果你声明你想要一个json数据类型,那么将它作为响应发送回来真的很容易:
echo json_encode( array('email' => $email) );
4)在你的ajax成功函数中,你可以这样做:
success: function( response ){
if( response.email ){
console.log(response.email);
}else{
console.log('email not verified');
}
}
5)最后,您没有显示会创建执行ajax事件的代码。如果您需要帮助,请告诉我,我会告诉您。
6)您可以在浏览器的控制台中查看所有网络流量。检查它,因为它在创建这些ajax请求时非常有用。
关于你的评论,在控制器中如何:
public function identifying_usertype()
{
if( $email = $this->input->post('email') )
{
echo json_encode( array('email' => $email) );
}
else
{
echo json_encode( array('error' => 'No email address') );
}
}