Проблема с локальными и глобальными переменными
Уважаемые, прошу, не могли бы вы разъяснить мне следующее, имеем код:
$(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, время: 19:17. |