Проблема с локальными и глобальными переменными
Уважаемые, прошу, не могли бы вы разъяснить мне следующее, имеем код:
$(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, я мог бы узнать значение этой переменной в условиях? Заранее спасибо :) |
Реорганизовать код таким образом, чтобы условия проверялись внутри функции обратного вызова, которая отрабатывает по получении ответа от сервера.
|
ваый,
это хорошая идея, так и сделал, но у меня где-то думаю ошибка, че то не выходит. Я вот протестировал кое-что и не могу понять, вот есть код на индексной странице: $(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. Помогите пожалуйста разобраться. |
ну дык и посылай свой option тоже POST'ом а то ты его GET'ом шлешь и удивляешься чему-то.
|
POST параметра option нету вообще-то.
{my: 'ku', option: 'send'} |
devote,
ваый, мдааа, точно, вы правы, спасибо большое =)) |
вынужден снова написать, т.к. все еще не докончил начатое и не могу понять кое-какую деталь. Протестировал следующий код:
<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,
Постарайся все же код обрамлять в специальные теги BBCode а то сложновато читать эту кашу. Код:
<?php |
devote,
буду иметь в виду, а насчет кода, все равно в инпите выводится исходный код страницы ... В чем может быть ошибка? |
у тебя этот скрипт в каком файле написан? Я так понял он сам себя вызывает при запросе ajax.. или все же другой? Если другой то делай проверку как я показал выше, и весь контент выводи тока когда переменная $_POST['option'] не определена
|
Часовой пояс GMT +3, время: 11:02. |