функция не успевает
Уже два часа сижу и не могу решить проблему
дело обстоит вот в чем: есть функция которая забирает значение из php 'yes' или 'no' если да то пишет одно если нет то другое...неважно и все прекрасно работало , пока в самом php не стали происходит запросы к базе.... тут я подумал что возможна функция просто не успевает забрать значение... и добавил в функцию проверку что если нет yes и нет no вывести 'ошибку не успевает ' так оно и случилось.... функция не забирает значения еще до того как php из вывел на экран как решить данную Задачу.... <script language="javascript"> //<!---------------------------------+ // Developed by Roshan Bhattarai // Visit [url]http://roshanbh.com.np[/url] for this script and more. // This notice MUST stay intact for legal use // ---------------------------------> $(document).ready(function() { $("#login").blur(function() { $("#msgbox").removeClass().addClass('messagebox').text('Проверка...').fadeIn("slow"); $.post("user_availability.php",{ login:$(this).val() } ,function(data) { if(data=='no') { $("#msgbox").fadeTo(200,0.1,function() { $(this).html('Это имя уже занято').addClass('messageboxerror').fadeTo(900,1); }); } if(data=='yes') { $("#msgbox").fadeTo(200,0.1,function() { $(this).html('Имя доступно для регистрации').addClass('messageboxerror').fadeTo(900,1); }); } else { $("#msgbox").fadeTo(200,0.1,function() { $(this).html('не успел').addClass('messageboxok').fadeTo(900,1); }); } }); }); }); </script> |
Это в php наверное проблема
|
Цитата:
и открываю файл php от показывает yes а функция выводит не успел |
В data приходит, то что отдает сервер. Поэтому проверьте php скрипт. Ну и для проверки всё лишнее убрать из jsa
$("#login").blur(function() { $.post("user_availability.php",{ login:$(this).val() } ,function(data){ console.log(data); }); }); |
$(document).ready(function() { $("#login").blur(function() { $.post("user_availability.php",{ login:$(this).val() } ,function(data){ console.log(data); alert(data); }); }); }); alert показывает no как то не логично получается.. alert показывает ...то что приходит....а не работает странно как то |
Ну так всегда приходит yes/no ?!:nono:
|
Цитата:
из за чего не пойму.. может пока alert выводит скрипт успевает ... а сразу нет хз думаю бросить эту затею сделать по другому.... но тут уже дело принципа .. просто понять хочу.. из за чего |
Кадр номер два
вставил алерт вывожу дата в дато пришло no alert вывел дальше идет сравнение и пишет Не успел ? Ржу не могу.. как так что за бред $(document).ready(function() { $("#login").blur(function() { $("#msgbox").removeClass().addClass('messagebox').text('Проверка...').fadeIn("slow"); $.post("user_availability.php",{ login:$(this).val() } ,function(data) { alert (data); if(data==='no') { $("#msgbox").fadeTo(200,0.1,function() { $(this).html('Это имя уже занято').addClass('messageboxerror').fadeTo(900,1); }); } if(data==='yes') { $("#msgbox").fadeTo(200,0.1,function() { $(this).html('Имя доступно для регистрации').addClass('messageboxerror').fadeTo(900,1); }); } else { $("#msgbox").fadeTo(200,0.1,function() { $(this).html('не успел').addClass('messageboxok').fadeTo(900,1); }); } }); }); }); </script> |
Может там пробел стоит, или какой-то символ вместе с yes/no
|
Кстати выведите data и data.length может поможет
|
сейчас точно с ума сойду
в php echo "no"; в скрипте сам видел if(data==='no') { а знаешь что вывел data.length 4 |
Я же говорю это php, может перед echo 'no'; есть какой то вывод пробелов.
|
Цитата:
<?php include ('blocks/bd.php'); $login = 'user'; $result2 = mysql_query("SELECT login FROM users",$db); $spisok = mysql_fetch_array($result2); do{$existing_users[]= $spisok;} while ($spisok = mysql_fetch_array($result2)); if (in_array($login, $existing_users)) {echo 'no';} else{echo 'yes';} ?> |
А если так оставить?
<?php echo 'no'; die(); ?> И в какой кодировке файл?! |
я думал про кодировку....но какая она не была разве aler дата не выдал бы ее криво
у меня utf 8 |
А пробел или перенос строки перед <?php есть?! Выложите этот файл сюда
|
Вложений: 1
я бы погрешил на кодировку
потому что когда я не делаю запрос в базу в php а создаю массив ручками.. то все работает .... соответственно скорее всего из базы приходит не в той кодировке..(допустим), но на вывод no или yes это же не влияет .... хотя кодировке везде одинаковые ... это я так мысли в слух |
Кодировка файлов у вас ansi. Выведите просто echo 'нет'; data.length будет 2. Весь код проверить не могу. Вы же знаете, что ajax передается в кодировке utf-8?
|
Да конечно. поменял ... , но у меня ни чего не изменилось. за то я кажется нашел что приходит на самом деле....
посмотрев исходный код страницы.....php я увидел следующие 1. 2. yes 1 и 2 это строки можно конечно не извращаться ... передавать длину даты и все ровно .. но если проблема реально в кодировке ... это конечно не очень хорошо... ладно я пока закрою это вариант .... напишу запрос по другому... и выведу json сделаю отпишусь ...минут через отпишусь |
если закоментить лишний код в пхп, то всё нормально. Может это ошибка выскакивает, может вывод в файле bd.php, может там перед <?php что-то лишнее :nono:
|
Цитата:
все заработало.... вот блин глупость какая.... как они могли влиять я до сих пор не понял....Спасибо тебе Огромное.... интересно было .... тема закрыта Хотя интересно узнать почему пробелы в скрипте влияют на вывод echo |
Просто надо передавать данные через json и такиъ проблем не будет(будут новые :) )
|
да , с тобой согласен полностью, я так всегда и делал , у меня все запросы ajax post json, а тут блин скрипт нарыл с разу с проверкой формы, интересно было , понять .... с чего не работает....Еще раз спасибо за помощь. Удачи
|
Часовой пояс GMT +3, время: 20:16. |