Вне зависимости от переменной условие заходит только в один блок
Здравствуйте. Столкнулся с проблемой - в не зависимости переменной, условие переходит в один и тот же блок. В checksms.php возвращается только true или false. Проверяю alert-ом перед условием - показывает все как надо. Но в условии опять срабатывает один и тот же блок Подскажите, пожалуйста, в чем ошибка.
var checkSMSCode=false; var confCod = $("#confCode").val(); $.ajax({ async: false, type: "POST", url: "checksms.php", data: "code="+confCod, success: function(info) { checkSMSCode=info; } }); alert(checkSMSCode); if (!checkSMSCode) //Вот это условие { var err_text1="<center>Код неверный!</center>"; $("#mess1").html(err_text1); $("#mess1").fadeIn("slow"); } else //заходит в этот блок { $.ajax({ url: "/registr/handler.php", type: "POST", data: "name="+name, success: function(inf){ $("#messenger").html(inf); $("#messenger").fadeIn("slow"); }, error: function(){ err_text="Отправка не завершена"; $("#messenger").html(err_text); $("#messenger").fadeIn("slow"); } }); ConfirmPhoneExit(); } |
У ТС там текст, есть такой прикол с этими true-false-null.
ТС, давайте из php или 0 или 1. Эти символы автоматически вычисляются в условиях и сравнениях. По крайней мере так должно быть в резиновых языках. |
Ну да, так не получится, я думал о сравнении, а написал об определении. В сравнениях - работает. Типа
var somevar == '0' if(somevar > 0) // go to end Но, зато с цифрами легко делать кастинг var somevar='0'; alert(!+somevar); Но все равно надо знать заранее что там. Короче, чтобы не мучиться с текстами - отдавайте из php - json. Будет вам и труе и фолс и кофэ... |
Подумал что ТС просто не понимает в чем там затык: php отдает текст. Никаких чисел, никаких битов - голимый текст применительно к вопросу. Чтобы нормально, то есть без колхозного преобразования вручную получать те же самые данные, надо их закатать в синтаксис json. Это - текст который интепрентируется как данные.
В php - json_encode, в js - JSON.parse - все элементарно. С одним только условием - ваши паги должны быть в utf-8, или придется перед жисоном конвертить в юникод из известной вам кодировки страниц. Пример из открытого сырца либы закачки файла: if (!$in = @fopen("php://input", "rb")) { die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}'); } То есть прямо в die() валите строку в формате json и все. Если там простые данные - json_encode не нужен конечно. Но, в теории перед отправкой такой строки надо дать соответствующий заголовок, на практике - не надо. |
Нет никакого суксесс в XMLHttpRequest 8) То есть ТС должен это знать что это jquery ему такой сервис обеспечивает - я не знал, ибо jquery - димедрол.
|
Всем спасибо, проблема решилась заменой true на 1.
|
Это сегодня она решилась, а завтра появится снова. Текст это text/html - mime type, а ваша 1 - boolean variable. У нее нет mime. Я понимаю что колхозные методы легче, но не проще - проще только поначалу, а потом все придется переписывать. Индустриальные методы сложнее, но зато разобравшись один раз - не знаете горя.
|
Часовой пояс GMT +3, время: 15:54. |