![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| z006 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 12.6.2009 Репутация: нет Всего: нет |
Добрый день.
есть вопрос,и подозреваю что глупый,ибо решение где-то на поверхности,но я его не вижу...(((( суть проблемы: имеем такой код:
вызываем ф-цию b,она вызывает ф-цию а с параметром.ф-ция а отрабатывает верно,если там проверять алертом значение переменной с-то все верно.но когда в ф-ции b идет вывод значения cvb - то выдает undefined. думал может не успевает передать значение.пробовал ставить в ф-цию b setTimeout.результат одинаковый. где тут псинка закопана? |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Проблема явно не в том куске кода, который вы привели, а где-то в той части, что вы здесь не показали.
Вот сами проверьте:
|
|||
|
||||
| z006 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 12.6.2009 Репутация: нет Всего: нет |
и правда этот пример работает.....очень странно....выкладываю весь кусок кода
результат,прилетающий от пхп файла,простой: 0 или 1 |
|||
|
||||
| Amphiluke |
|
||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Ну вот и покажите мне теперь где у вас написано, чтобы функция check1 возвращала бы какое-либо значение?
Строка
это возврат значения вложенной функцией handleAjaxResponse, а вот сама check1 нигде ничего не возвращает. |
||||
|
|||||
| z006 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 12.6.2009 Репутация: нет Всего: нет |
вот я видимо сейчас опозорюсь с этим вопросом,но а как заставить её вернуть это значение именно от имени ф-ции check1?
если ставлю переменню с как глобальную,и переношу ретёрн так,то все-равно андефинед.
|
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Ну ясное дело. Грубо говоря, этот alert(cvb) нужно вызывать только из handleAjaxResponse, когда readyState примет значение 4... |
|||
|
||||
| z006 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 12.6.2009 Репутация: нет Всего: нет |
это я понимаю,но я хотел чтоб у меня была одна функция,которая сможет отсылать запросы на пхп"шные файлы,и получать их ответы,а потом уже отдавать этот полученный ответ тем функциям,которые первоначально запросили его,чтоб уже в этих мелких ф-циях разбирать эти ответы как надо.грубо говоря жалкое подобие библиотеки что-ли надо...
но почему-то не получается.....как его "вывернуть",чтоб оно заработало как мне надо? |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
P.S. Если непонятно сказал, функция check1 завершается раньше, чем будут получены данные.
Добавлено через 3 минуты и 11 секунд У вас используются асинхронные запросы? Ну если так нужно, сделайте синхроные. Но тогда нужен будет тот ход с глобальной переменной c, который вы только что пробовали. Добавлено через 6 минут и 37 секунд А вообще я не вижу ничего плохого в том, чтобы по получении данных асинхронным запросом, вызвать в методе onreadystatechange нужную ф-цию обработки полученных данных. Зачем возвращаться в вызывавшую функцию? |
|||
|
||||
| z006 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 12.6.2009 Репутация: нет Всего: нет |
ну я просто ж не знаю в какую ф-цию надо будет передать результат.
это что,для вызова ф-ции check1 допустим по нажатию кнопки,к примеру,в onmouseup надо будет указать параметры:поле откуда берем значение,имя ф-ции,куда будем отдавать результат. так получается? |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Ну если вы не знаете, в какую ф-цию передавать данные, то, видимо, да, так.
Человек, который будет вызывать ф-цию check1, должен будет передать ей в параметре указатель на нужную ему callback-функцию. А метод onreadystatechange по этому указателю вызовет функцию. Если помимо этого есть много других передаваемых параметров, их можно объединить в один объект, методом которого будет в частности и callback-функция. И тогда нужно будет лишь передавать функции check1 указатель на этот объект. Это сообщение отредактировал(а) Amphiluke - 19.2.2010, 21:15 |
|||
|
||||
| z006 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 12.6.2009 Репутация: нет Всего: нет |
я перенабросал код,но стал немного в тупик.если у меня имя функции содержится в переменной скажем funcname ,то не вызову-же я эту функцию так: funcname( с );
как её вызвать?........ Это сообщение отредактировал(а) z006 - 19.2.2010, 21:18 |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Передавайте не имя функции в виде строки, а указатель на нее.
Либо, если передаете имя-строку, можно воспользоваться ф-цией eval для вызова по имени... Хотя это менее предпочтительный вариант, чем первый. |
|||
|
||||
| z006 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 12.6.2009 Репутация: нет Всего: нет |
поставили в тупик.
опыта и знаний маловато.ушел читать литературу.за ссылки что почитать-буду благодарен. |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
А что не получается-то?
|
|||
|
||||
| z006 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 12.6.2009 Репутация: нет Всего: нет |
по поводу вызова функции через указатель или евал
|
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |