Как я могу проверить, получил ли я значение из моего AJAX на мой контроллер

Это событие, которое вызовет вход в систему

$('#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') );
}
}

Теперь я получаю {«error»: «Нет адреса электронной почты»} на моей консоли, нет ошибки. Я что-то упускаю? На моем AJAX я добавил dataType: ‘JSON’, я изменил URL с base_url на URL сайта

0

Решение

Так как у вас есть success: function(response){возвращаемое значение Ajax находится в переменной response и не на email, Таким образом, это решит вашу проблему:

success: function(response){
email  = response;
alert(email);
//$('#myModal').modal('hide');
},
1

Другие решения

1) Лучший способ создать ссылку на один из ваших собственных контроллеров / методов в CodeIgniter — это использовать site_url (), а не base_url (). С site_url, ваш URL становится:

url: '<?php echo site_url('login/identifying_usertype'); ?>',

2) $ .ajax jQuery требует, чтобы вы объявили dataType. Хотя, если вы пропустите это, jQuery попытается угадать, что это такое, я обнаружил, что это много раз неправильно. Большинство людей будут использовать «JSON»:

dataType: 'json',

3) В вашем контроллере, если вы заявляете, что хотите использовать json dataType, очень легко отправить его обратно в ответ:

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') );
}
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector