Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2011, 12:21
Аспирант
Отправить личное сообщение для pro_xaoc Посмотреть профиль Найти все сообщения от pro_xaoc
 
Регистрация: 23.03.2011
Сообщений: 69

Проблема с локальными и глобальными переменными
Уважаемые, прошу, не могли бы вы разъяснить мне следующее, имеем код:
$(function(){

oneinput.keyup(function(){
	var regV = /^[а-я\w]{4,12}$/i;
	var result = $(this).val().match(regV);
	var strlength = $(this).val().length;
        $.post('index.php?option=ajax_query', 
		{ajax_akk:  $(this).val()},
		function(data){
		      [B]var res = data;[/B]
		}
	)
	if ((result == null) || (res == 'no')){
		yes1.css({display: 'none'});
		no1.css({display: 'inline'});	
	} else {
		no1.css({display: 'none'});
		yes1.css({display: 'inline'});
	}
	if(strlength == 0){
		yes1.css({display: 'none'});
		no1.css({display: 'none'});
	}
});

})

Вот в этом коде, у меня проблемы с областью видимости переменной res, как мне сделать так, чтобы когда входные данные (data) присваивались переменной res, я мог бы узнать значение этой переменной в условиях? Заранее спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 08.08.2011, 12:35
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

Реорганизовать код таким образом, чтобы условия проверялись внутри функции обратного вызова, которая отрабатывает по получении ответа от сервера.
Ответить с цитированием
  #3 (permalink)  
Старый 08.08.2011, 16:22
Аспирант
Отправить личное сообщение для pro_xaoc Посмотреть профиль Найти все сообщения от pro_xaoc
 
Регистрация: 23.03.2011
Сообщений: 69

ваый,
это хорошая идея, так и сделал, но у меня где-то думаю ошибка, че то не выходит. Я вот протестировал кое-что и не могу понять, вот есть код на индексной странице:
$(function(){
	$.post('refer.php?option=send',
	{my: 'ku'},
	function(data){
		document.write(data);
	}
	)
})

а вот php обработчик:
$option = $_POST['option'];
$my = $_POST['my'];
if ($option == 'send'){
if($my == 'ku'){
echo 'ku';
} else {
echo 'ne ku';
}
} else{
if($my == 'ku'){
echo 'ku-ku';
} else {
echo $option.'b';
}
}

в данном случае у меня срабатывает условие, где имеется echo 'ku-ku' , а должно было первое условие быть истинным. Не могу понять почему срабатывает именно он, ведь я передал option=send. Помогите пожалуйста разобраться.

Последний раз редактировалось pro_xaoc, 08.08.2011 в 16:24.
Ответить с цитированием
  #4 (permalink)  
Старый 08.08.2011, 16:32
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

ну дык и посылай свой option тоже POST'ом а то ты его GET'ом шлешь и удивляешься чему-то.
Ответить с цитированием
  #5 (permalink)  
Старый 08.08.2011, 16:34
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

POST параметра option нету вообще-то.
{my: 'ku', option: 'send'}
Ответить с цитированием
  #6 (permalink)  
Старый 08.08.2011, 16:56
Аспирант
Отправить личное сообщение для pro_xaoc Посмотреть профиль Найти все сообщения от pro_xaoc
 
Регистрация: 23.03.2011
Сообщений: 69

devote,
ваый,
мдааа, точно, вы правы, спасибо большое =))
Ответить с цитированием
  #7 (permalink)  
Старый 09.08.2011, 02:08
Аспирант
Отправить личное сообщение для pro_xaoc Посмотреть профиль Найти все сообщения от pro_xaoc
 
Регистрация: 23.03.2011
Сообщений: 69

вынужден снова написать, т.к. все еще не докончил начатое и не могу понять кое-какую деталь. Протестировал следующий код:
<body>
<script>
$(function(){
$.post('index.php',
{add: 'da',option: 'send'},
function(data){
$('#d').val(data);
}
)
})
</script>
<input type='text' id='d' >
<?php
$mya = $_POST['option'];
$myb = $_POST['add'];
if($mya == 'send'){
if($myb == 'da'){
echo 'yes';
}
if ($myb == 'net'){
echo 'no';
}
}
if($mya == 'tur'){
if($myb == 'da'){
echo 'yes';
}
if ($myb == 'net'){
echo 'no';
}
}
?>
</body>
Здесь у меня в input'e почему-то появляется исходный код страницы)) Ниче не могу понять откуда он берется, ведь по логике должно быть либо no или yes.

Последний раз редактировалось pro_xaoc, 09.08.2011 в 02:11.
Ответить с цитированием
  #8 (permalink)  
Старый 09.08.2011, 02:42
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

pro_xaoc,
Постарайся все же код обрамлять в специальные теги BBCode а то сложновато читать эту кашу.

Код:
<?php
  if ( !isset( $_POST['option'] ) ) {
?>
<body>
  <script>
    $(function(){
      $.post('index.php',
        {add: 'da',option: 'send'},
        function(data){
          $('#d').val(data);
        }
      )
    })
  </script>
  <input type='text' id='d' >
</body>
<?php
  } else {
    $mya = $_POST['option'];
    $myb = $_POST['add'];
    if($mya == 'send'){
      if($myb == 'da'){
        echo 'yes';
      }
      if ($myb == 'net'){
        echo 'no';
      }
    }
    if($mya == 'tur'){
      if($myb == 'da'){
        echo 'yes';
      }
      if ($myb == 'net'){
        echo 'no';
      }
    }
  }
?>
Ответить с цитированием
  #9 (permalink)  
Старый 09.08.2011, 03:47
Аспирант
Отправить личное сообщение для pro_xaoc Посмотреть профиль Найти все сообщения от pro_xaoc
 
Регистрация: 23.03.2011
Сообщений: 69

devote,
буду иметь в виду, а насчет кода, все равно в инпите выводится исходный код страницы ... В чем может быть ошибка?
Ответить с цитированием
  #10 (permalink)  
Старый 09.08.2011, 04:58
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

у тебя этот скрипт в каком файле написан? Я так понял он сам себя вызывает при запросе ajax.. или все же другой? Если другой то делай проверку как я показал выше, и весь контент выводи тока когда переменная $_POST['option'] не определена
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с сеансовыми переменными faiq Серверные языки и технологии 2 10.05.2011 23:03
Проблема с переменными mopsusha Общие вопросы Javascript 2 21.01.2011 14:36
FileReader проблема с локальными файлами kostysh Общие вопросы Javascript 4 24.11.2010 17:59
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19
Проблема с переменными Painerman Общие вопросы Javascript 7 11.11.2008 13:35