Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Общие вопросы > XMLHttpRequest - проблема с передачей параметра |
Автор: sugee 24.7.2006, 19:48 | ||||||
Для того чтобы показанный код делал именно то что мне нужно, надо передать параметр scrId, принимаемый функцией view в функцию process. Камнем преткновения стала функция processReqChange, то есть вопрос в общем в том чтобы передать этот параметр в эту функцию. Если делать это так
естественно сначала передав параметр в loadXMLDoc(), то IE ругается на несоответствие типов, а JavaScript-консоль в firefox загадочно молчит, но ни в одном браузере код не работает. Мне это, в общем, нужно для того чтобы содержимое записи БД выводилось в DIV-е с соответствующим айдишником. С фиксированным айдишником, т.е.
работает нормально, проблема только в том чтобы передать параметр. |
Автор: vasac 24.7.2006, 20:08 | ||
Вместо srcIdparam видимо url имелся ввиду? |
Автор: 12345c 24.7.2006, 20:59 | ||
Не знаю, возможно ли передать параметры функции-обработчику прерывания, разве что объявив её как метод в обёртывающей функции . Попробуйте
|
Автор: sugee 25.7.2006, 20:15 |
Нет, так не получается. В принципе я сделал то, что хотел, но я пошёл от обратного. Id я передаю из PHP-скрипта в req.responseText, а потом вытаскиваю его оттуда строковыми функциями. Всё работает, но способ конечно не самый красивый. |
Автор: skyboy 26.7.2006, 08:22 | ||||||
sugee, конечно, не самый. При том, что XMLHttpReuquest - он, в первую очередь, XML.... Формируй на стороне сервера простенький XML и тогда вместо парсинга текста можно будет сделать чего-то вроде такого:
Конечно, может парсинг строки из одного значения и покороче будет, зато такой метод хранения позволяет легко получить доступ и к 5, и к 10 разным значениям. Касательно конкретно сабжа, то я использую передачу функции обратного вызова. Вот так выглядят функции, упрощающие работу с данным объектом(они "заточены" под Get - передеачу, но, как мне кажется, переделать не сложно):
Решение не моё, на каком-то сайте нашёл. А вызов происходит так:
Только в этой реализации функций - "обёрток" одна недоработка: используется одна глобальная реализация объекта xmlhttprequest... |
Автор: sugee 26.7.2006, 21:10 | ||||
Формирую такой XML
Получаю его
Почему-то не могу добраться добраться до корневого узла, proc.documentElement у меня возвращает NULL. |
Автор: skyboy 26.7.2006, 21:15 | ||
это потому что вся структура должна быть обрамлена <response></response>:
|
Автор: sugee 26.7.2006, 22:43 |
Дело в том что у меня в теге <cont> содержится не просто текст, а JavaScript пропущенный через htmlspecialchars(). Так что валидный XML тут никак не получится. Странно другое: если убрать этот тег вообще, то XML уж точно валидный, а req.responseXML.documentElement всё равно возвращает NULL. |
Автор: skyboy 27.7.2006, 08:39 |
А в чём его инвалидность? В символах амперсанда? какой тег? <response>? |
Автор: vasac 27.7.2006, 11:23 | ||
Так заключи его в CDATA. |
Автор: sugee 28.7.2006, 07:19 | ||
В XML теперь всё правильно, но корневой узел всё равно не могу получить. |
Автор: skyboy 28.7.2006, 08:07 |
а без скрипта в cont- можешь? вместе с тегом respone? |
Автор: sugee 28.7.2006, 08:18 |
Нет, null и всё... ![]() |
Автор: skyboy 28.7.2006, 10:11 |
а responseText какой? |
Автор: sugee 28.7.2006, 22:54 | ||
В responseText весь сформированный на стороне сервера текст, т.е.
|
Автор: skyboy 28.7.2006, 23:36 |
слу, самый-самый простой пример из любого учебника/справочника по ajax работает? мало ли, может проблема с кодировкой, настройкой, прочим... |