Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Java / JavaScript


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

Чемпионы рейтинга экспертов в этой рассылке

Alexandr A. Rakunov
Статус: 8-й класс
Рейтинг: 83
∙ повысить рейтинг >>
Иоффе Мэир Вэлевич
Статус: 8-й класс
Рейтинг: 55
∙ повысить рейтинг >>
Командин Константин Евгениевич
Статус: 5-й класс
Рейтинг: 38
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Java/JavaScript

Выпуск № 569
от 08.11.2008, 05:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 329, Экспертов: 20
В номере:Вопросов: 1, Ответов: 1

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 149250: Доброй ночи! Из функции передаю значение return req.responseText; На выходе оно теряется. В ошибках пишет: 'undefined' есть null или не является объектом. Если в самой функции пишу alert(req.responseText), всё правильно выдаёт.<b...


Вопрос № 149.250
Доброй ночи!

Из функции передаю значение return req.responseText;
На выходе оно теряется. В ошибках пишет: 'undefined' есть null или не является объектом.
Если в самой функции пишу alert(req.responseText), всё правильно выдаёт.
Вне функции:
var answer=ajaxhtml('today','daymon='+daytoday);
alert(answer) даёт 'undefined'.

Где я напортачил?

На всякий случай функцию прилагаю, но она и код php уже проверены - работают правильно до самого выхода.

Приложение:

Отправлен: 02.11.2008, 00:30
Вопрос задал: Прим Палвер (статус: 3-й класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Иван Сергеевич
Здравствуйте, Прим Палвер!

Все правильно, Ваша функция ничего и не возвращает :)
Дело в том, что запрос - асинхронный, т.е. после отправки http-запроса к серверу страница не ждет результата его работы. Все, что ожидается от сервера, приходит в req.responseText (на самом деле есть еще и responseXML, но ИЕ его некорректно обрабатывает, поэтому обычно используется именно текст), что с ним делать - указываете в функции onreadystatechange. И вот тут-то проблема - возвращать результат ее работы некуда. Надо просто обрабатывать ответ (вставлять на страницу или еще что-то). Я обычно решаю подобные вещи указанием в качестве третьего параметра функции ajaxhtml имени какой-то функции, отвечающей за обработку полученного результата.
В нее и передается ответ сервера (с помощью функции eval()).
Ответ отправил: Иван Сергеевич (статус: Студент)
Ответ отправлен: 02.11.2008, 20:50

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 149250 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    Всё равно не понял, КАК ВЫВЕСТИ из функции :( За её пределы.


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

    Отправить вопрос экспертам этой рассылки

    Приложение (если необходимо):

    * Код программы, выдержки из закона и т.п. дополнение к вопросу.
    Эта информация будет отображена в аналогичном окне как есть.

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2008, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.10 от 5.11.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное