Код работает точно так, как вы просите.
Разрушение вашего кода выглядит как ...
If I get something from $this->input->post('email') then
echo '1';
else if $this->input->post('email') is NULL
then assign NULL to a and return it in a json_encoded array.
Судя по вашему коду, это может означать что-то вроде ...
public function login_check(){
print_r($this->input->post());
if($this->input->post('email') == NULL){ // This was !=
echo '1';
}
else{
header('Content-Type: application/json');
echo json_encode( array('a' => $this->input->post('email')));
}
Единственное изменение - изменить! = На == в вашем операторе if.
Один из тех, кто "смотрит на него слишком долго и никогда его не видит", простая логическая ошибка:)
Лучшая рекомендация - использовать что-то вроде ...
public function login_check(){
print_r($this->input->post());
if($this->input->post('email')){
header('Content-Type: application/json');
echo json_encode( array('a' => $this->input->post('email')));
exit();
}
else {
// Handle the case where no email was entered.
echo '1';
}
}
Это должно вернуть вас в нужное русло.
Обновление: Я пробовал это в почтальоне (только что установил его), и для POST вам нужно установить ключ / значение в Body, а не в Headers, как вы делаете это с GET, если вы это сделали также отсутствует.