Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ajax: функции, переменные... 
:(
    Опции темы
Ant88
Дата 16.5.2007, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 30.1.2007
Где: г. Самара

Репутация: нет
Всего: 1



Здравствуйте, 

Имеем примерно такой код: 

 
Код

var vrlb = 0;

someFunc();

function ajaxFuncOne(num){
   x_blaBlaBla(num, ajaxFuncTwo);
}

function ajaxFuncTwo(result){
   vrlb = result;
}

function someFunc(){
  for (i=0, i<10, i++){
     ajaxFuncOne(i);
     if(vrlb==0) {...}
     else if(vrlb==1) {...}
     else {...}
  }
}


Далее есть PHP скрипт, функция blaBlaBla($num) которого собственно возвращает значения типа integer. 
Используется библиотека Sajax. 
Так вот: в функции someFunc() всегда выполняется код, соответствующий значению переменной vrlb равному 0, хотя это значение должно изменяться (и изменяется) при вызове ajaxFuncOne(). Почему?????????

Это сообщение отредактировал(а) 12345c - 16.5.2007, 15:12
PM MAIL ICQ   Вверх
vasac
Дата 17.5.2007, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: нет
Всего: 36



Где отправляется запрос? Где он обрабатывается? Где x_blaBlaBla? Где комментарии?
PM WWW   Вверх
Ant88
Дата 17.5.2007, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 30.1.2007
Где: г. Самара

Репутация: нет
Всего: 1



К примеру так...

Вот php-скрипт, содержащий запрашиваемую функцию, с ним проблем нет

Код

<?php
function blaBlaBla($num){              
        return $num;                                    // ну к примеру так, для краткости :)
}


sajax_init();                                             // инит саякса
sajax_export("blaBlaBla");                      // экспорт с префиксом 'x' (x_blaBlaBla - вот она объявляется)
sajax_handle_client_request();
?>


далее html содержащий JS

Код

<script language="javascript">
<?php sajax_show_javascript(); ?>
var vrlb = 0;          // вот переменная, значение которой изменяет ф-ция

someFunc();         // запускаем основную ф-цию JS

function ajaxFuncOne(num){                 // объявляем ф-цию, которая запускает ajax-овую ф-цию
   x_blaBlaBla(num, ajaxFuncTwo);        // и передает результ в ф-цию ajaxFuncTwo (см.ниже)
}

function ajaxFuncTwo(result){              // и она изменяет значение переменной, объяв в начале
   vrlb = result;
}

function someFunc(){                          // вот основная ф-ция данного JS-кода
  for (i=0, i<10, i++){
     ajaxFuncOne(i);                             // здесь мы запускаем ajaxFuncOne с аргументом 0 - 9
     if(vrlb==0) {...}                             // и идет проверка переменной
     else if(vrlb==1) {...}
     else {...}
  }
}
</script>


Вот.

Это сообщение отредактировал(а) Ant88 - 17.5.2007, 11:04
PM MAIL ICQ   Вверх
vasac
Дата 17.5.2007, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: нет
Всего: 36



Я не знаток sajax, но обычно аяксовые запросы выполняются в асинхронном режиме (на то он и Ajax). 
Скорее всего и у вас так же. К тому времени, когда выполняется цикл ни один ответ еще не пришел.
PM WWW   Вверх
BuShaRt
Дата 17.5.2007, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: нет
Всего: 6



Ant88, 
switch гораздо удобней else if... имхо else if - крайнее извращение... 

А вы уверенны что значение $i изменяеться? (как вы это проверяли?)
И то, что if ($i==0) {тут}  у вас переменная $i не изменяет значение?

Это сообщение отредактировал(а) BuShaRt - 17.5.2007, 12:15
PM MAIL   Вверх
Ant88
Дата 17.5.2007, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 30.1.2007
Где: г. Самара

Репутация: нет
Всего: 1



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

Ну то что значение i изменяется, это точно, это ж переменная цикла.
А вот насчет vrlb - не факт. 
Я пробовал еще так: вместо vrlb значение изменяло <input type="text" name="vrlb"> и соответственно в if() было условие другое: document.all.vrlb.value==?.
тут наглядно демонстрировалось, что значение изменяется как и должно.
Скорее всего проблема заключается именно в том, что ответов еще нет...
Как бы это можно обойти?
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0509 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.