![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Вот всё, что я смог найти JavaScript-е SMF похожее на Ajax-функции.
При загрузке страницы, в файле index.template.php, волшебным образом, появляется массив $context, набитый всякой разной инфой. Я забираю в JavaScript-овый сценарий последние сообщения форума - $context[news_lines]. И вот, встал вопрос. Как мне через Ajax получить $context[news_lines]? Как найти то место в php-файлах, где происходит запрос к базе (по каким словам искать?)? Ну и как воспользоваться приведенными функциями? И чего мне делать потом с этим XML? У меня есть ещё вопросы.... ну, да ладно, не буду наглеть. Да, и кто такой callback? -------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
| Grig |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 809 Регистрация: 29.4.2005 Где: Иркутск Репутация: 2 Всего: 16 |
callback - очевидно функция, обрабатывающая пришедший XML.
из файла который передается в url тебе следует вернуть примерно такой xml-ник:
и распарсить его ф-ций callback -------------------- |
|||
|
||||
| Fortop |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
Функция Пример, есть одна функция внутри которой вызывается другая. Так вот используя технологию callback - ты можешь указать любую функцию в качестве этой другой ;)
Непонятен вопрос. Чем в этом вопросе Ajax отличается от JavaScript? Там же где и забираешь в JavaScript или в каком-то отдельном месте.
Ну, а уже внутри своего PHP разруливай что делать, и что отдавать, когда тебе пришел какой-либо набор параметров.
-------------------- Мир это Я. Живее всех живых. |
||||||
|
|||||||
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Спасибо.
Я забираю $context['latest_posts'] (ранее ошибочно указал $context[news_lines], но это сути не меняет) во время начальной загрузки, в шаблоне страницы, при php-выдаче HTML-а. Переливаю массив в массив. Но когда страница уже загружена, пользователь на ней работает, мне нужно обновить информацию о последних сообщениях форума - послать запрос. Это сообщение отредактировал(а) Ghirik - 15.5.2008, 10:24 -------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
По каким ключевым словам можно поискать в php-файлах функцию, которая посылает/забирает данные при Ajax-обмене?
-------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
| Grig |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 809 Регистрация: 29.4.2005 Где: Иркутск Репутация: 2 Всего: 16 |
php-файлу абсолютно безразлично кто его опрашивает, HTTPRequest или браузер пользователя, или еще что-либо. Он просто отдает что просили и всё.
-------------------- |
|||
|
||||
| Ghirik |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Ну а как его опросить то? Здесь
ведь нужно указать url файла в котором находится php-функция, запрашивающая базу. Или я чего то не понимаю? Попробую поискать в JavaScript-е вызовы этих функций, может по аналогии чего и сотворю... -------------------- Отдадим всё клиенту, пускай его машина мучается... |
||||
|
|||||
| Grig |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 809 Регистрация: 29.4.2005 Где: Иркутск Репутация: 2 Всего: 16 |
1.php
или я не понимаю в чем проблема =( -------------------- |
||||
|
|||||
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Нехватает уму
-------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 9 Всего: 67 |
Чтобы не лезть по локоть в исходники можно сделать так:
1. в index.php добавляем в массив $actionArray свой action, по которому будем запрашивать новые посты 2. в нашем фале, который уже прописан в $actionArray, пишем
3. Ну и, по идее, с javascript'ом у вас проблемм не должно возникнуть -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Самое удивительное, что я как раз этот финт и пытался сделать... Уже даже сделал файл LatestPosts.php именно с таким содержанием, и положил его в Sources. Только не поставил die(); в конце... Но собирался его пришпандорить через require_once, где /MessageIndex.php и /BoardIndex.php...
Так, всё готово. Прописал так:
А как мне его брать то? Через getXMLDocument(url, callback)? url = 'http://domen.ru/index.php?action=latestposts'; ? И преобразование в xml чем делать? Есть функция в php? -------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
| Ghirik |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Судя по дебагеру
Функцию getXMLDocument(url, callback) вызываю так:
функция alertContents выглядит так:
файл action выглядит так:
Алерт не хочет ни в какую выскакивать! Практически то же самое здесь работает. Что за фигня? Где я чего не так делаю? -------------------- Отдадим всё клиенту, пускай его машина мучается... |
||||||
|
|||||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 9 Всего: 67 |
У вас в ответ приходит не валидный xml -- перед <?xml стоит перевод строки и пробелы.
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| Ghirik |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Так... Всё заработало после следующих изменений.
Как подсказал solenko, следовало убрать пробелы перед <?xml. Но и этого оказалось мало, пришлось указать кодировку <?xml version="1.0" encoding="UTF-8"?>. И в личной переписке, solenko, подсказал прописать заголовок header("Content-type: text/xml"); , прописал, только после этого стал вылетать alert. Ну и на всякий случай,
Вот последний релиз
и callback
Grig, Fortop, solenko, всем огромное спасибо! Ощущение такое, будьто наладил радиосвязь с Марсом. Это сообщение отредактировал(а) Ghirik - 16.5.2008, 16:47 -------------------- Отдадим всё клиенту, пускай его машина мучается... |
||||||
|
|||||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |