Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   функция не успевает (https://javascript.ru/forum/dom-window/21983-funkciya-ne-uspevaet.html)

Sadist_dead 01.10.2011 23:28

функция не успевает
 
Уже два часа сижу и не могу решить проблему
дело обстоит вот в чем: есть функция которая забирает значение из 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>

zebra 01.10.2011 23:31

Это в php наверное проблема

Sadist_dead 01.10.2011 23:35

Цитата:

Сообщение от zebra (Сообщение 129135)
Это в php наверное проблема

нет 100% так как файле php параметр $login я задаю жестко
и открываю файл php от показывает yes
а функция выводит не успел

zebra 01.10.2011 23:48

В data приходит, то что отдает сервер. Поэтому проверьте php скрипт. Ну и для проверки всё лишнее убрать из jsa
$("#login").blur(function() {
   $.post("user_availability.php",{ login:$(this).val() } ,function(data){
        console.log(data);
   });
});

Sadist_dead 01.10.2011 23:55

$(document).ready(function()
{
	$("#login").blur(function() {
   $.post("user_availability.php",{ login:$(this).val() } ,function(data){
        console.log(data);
		alert(data);
   });
});
});



alert показывает no

как то не логично получается.. alert показывает ...то что приходит....а не работает странно как то

zebra 01.10.2011 23:57

Ну так всегда приходит yes/no ?!:nono:

Sadist_dead 02.10.2011 00:00

Цитата:

Сообщение от zebra (Сообщение 129144)
Ну так всегда приходит yes/no ?!:nono:

согласен что полный бред.... но не работает .. выдает не успел ...
из за чего не пойму.. может пока alert выводит скрипт успевает ... а сразу нет хз
думаю бросить эту затею сделать по другому.... но тут уже дело принципа .. просто понять хочу.. из за чего

Sadist_dead 02.10.2011 00:04

Кадр номер два

вставил алерт
вывожу дата в дато пришло 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>

zebra 02.10.2011 00:05

Может там пробел стоит, или какой-то символ вместе с yes/no

zebra 02.10.2011 00:06

Кстати выведите data и data.length может поможет


Часовой пояс GMT +3, время: 18:12.