есть js код Код (Javascript): $('#btn').on('click',function(){ var login = $('#login').val(); var password = $('#password').val(); $.ajax({ url:"http://axxl.loc/files/handler_auth.php", type:"POST", cache:false, data:{ 'login':login, 'password':password }, success:function(data){ if(data == '1'){ location.reload(); }else{ $('#out').html(data); } } }); }) и есть соответственно php код(обработчик ajax запроса) PHP: <? session_start(); include '../config/db.php'; include '../config/functions.php'; $login = htmlspecialchars(str_replace(' ','',$_POST['login'])); $password = htmlspecialchars(str_replace(' ','',$_POST['password'])); get_all_data('login',$login,'count_l','row_l'); get_all_data('password',$password,'count_p','row_p'); if($login == ''){ echo "Вы не ввели логин"; }elseif($password == ''){ echo "Вы не ввели пароль"; }elseif($count_l == true AND $count_p == true){ $_SESSION['user'] = $login; echo "1"; }else{ echo "Аккаунт не найден"; } Я хочу чтобы допустим если сервер вернул текст "1" то выполнился код js но при проверке код не выполняется Код (Javascript): success:function(data){ if(data == '1'){ location.reload(); }else{ $('#out').html(data); } Спасибо заранее.
Спасибо все работает просто добавил return data; Код (Javascript): $('#btn').on('click',function(){ var login = $('#login').val(); var password = $('#password').val(); $.ajax({ url:"http://axxl.loc/files/handler_auth.php", type:"POST", cache:false, data:{ 'login':login, 'password':password }, success:function(data){ if(data == '1'){ location.reload(); }else{ $('#out').html(data); } } return data; }); })
Не правильно. Js не дожидается ответа от аякса и продолжает работу. Чтобы избежать данной ситуации, используйте Promise
@PHP-Chainik12, @Dimon2x Не путайте объект data, который вы передаете Код (Text): data:{ 'login':login, 'password':password }, и ответ от сервера Код (Text): success:function(data){ if(data == '1'){ location.reload(); }else{ $('#out').html(data); } Для начала, нужно проверить что вообще возвращает сервер Код (Text): success:function(data){ console.log(data); } Или даже так Код (Text): success:function(data){ console.log(data); }, error:function(data){ console.log('error'); console.log(data); } И вместо data здесь можно использовать любую переменную.