Надеюсь, что мне кто-нибудь и что-нибудь подскажет или хотя бы посоветует, потому как долбаюсь уже несколько дней и все безрезультатно, возможно я чего-то не допонимаю. Итак, так сказать, обстоятельсва вынудили сесть за написание собственного компонента под Joomla 1.5. И в компоненте придется использовать технологию ajax. Все бы хорошо, вроде разобрался с Моделью-Представление-Контроллер. Но вот как прикрутить аякс, не понимаю... Итак, попробую объяснить суть проблемы. У меня сейчас получается следующее: - через Представление я генерирую некую HTML страницу, в которую вставляются данные из базы, которые получаны через обработку в Модели. - некие действия на странице запускают функцию javascript, в которой с помощью объекта XMLHTTPRequest формируется запрос к серверу. И тут у меня начали возникать проблемы... каким должен быть этот запрос, где и как его подхватить, как вернуть ответ. Перерыв кучу информации в гугле я сделал таким образом, запрос в javascript выглядит так: Код (CODE): function getXmlHttp(){ var xmlhttp; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); } return xmlhttp; } function open_date(id) { var xmlhttp = getXmlHttp() xmlhttp.open('GET', 'index.php?option=com_comname&view=newviev&id=1', true); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4) { if(xmlhttp.status == 200) { alert(xmlhttp.responseText); } } }; xmlhttp.send(null); } alert(xmlhttp.responseText); - это для теста, просто хочу видеть, что возвращает сервер. Далее, в своем компоненте я создал новое представление с именем, соответственно newview. Поидее оно должно получать обработанные данные из Модели и возвращать их в скрипт. Нужную переменную из зпроса получаю с помощью метода - JRequest::getVar('id', 0, '', 'array'); Но как, как их черт возьми вернуть в скрипт, я не понимаю... Во всех мануэлах по разработке компонентов под Joomla 1.5 в представлении стоит метод parent::display($tpl);, который возвращае шаблон. А мне то нужно вернуть определенные данные, которые получены из Модеи. Примерно понятно, что я хочу? Уважаемые гуру, хоть что-нибудь мне подскажите, может быть я изначально что-то не правильно делаю или не правильно понимаю?
Не подумай, что флудер. Но я вроде как на этом форуме считаюсь модером этой ветки. Исторически сложилось. Но помочь не шибко могу. Во-первых я бы порекомендовал использовать простейшую обертку на аяксом, типа sack. Сам пользуюсь - не нарадуюсь. Во-вторых "вернуть в скрипт" - тебе надо их передать своему яваскрипту или тупо вывести юзеру? Если второе, то просто echo.
Dead Krolik, спасибо за ответ. Нет, нужно вернуть именно в свой скрипт. Вообще, на самом деле, я уже разобрался. Буквально вот вчера. Использовал библиотеку xajax. В качестве основного пособия к действию использовал вот это - http://lurm.net/?content/ajax И у меня получился очень классненький компонентик, реализовал с помощью аякса все, что хотел. =)
earx, спасибо, это я уже читал. Но мне легче было разобраться, читая мануэл на родном, русском, к примеру вот этот - http://kjoomla.com/lessons/35-lessons/45-lesson1.html Видать, это блог кого-то из Джумловских гуру. =) Очень классно написано.
Подскажите пожалуйста. как победить ошибку: Error: the xajax Javascript component could not be included. Perhaps the URL is incorrect? URL: /usr/local/www/vhosts/MyProbeSite/administrator/components/com_umcit/library/xajax/xajax_js/xajax_core.js Судя по указанному в URL: пути ... все правильно. Именно здесь находится <xajax_core.js> И как я понимаю именно его система не может загрузить.
Свою ошибку я нашел ... Похоже что суть этого в пути к загружаемым джаваскриптам... А точнее. нельзя в конструкции подключения скриптов использовать (указывать) серверный путь Что то типа вот такого ... Код (CODE): $xajax->configure("javascript URI", JPATH_SITE.DS.'libraries/xajax/'); ЭТО ОШИБКА. ----------------------- Путь должен быть относительным где то так ... Код (CODE): $xajax->configure("javascript URI", '/libraries/xajax/'); ------------------- Я думаю это связано с тем. что джаваскрипт загружается на клиента и не может быть загружен по абсолютному пути. Жаль что об этом ни слова в документации. Отсутствие какого-либо документирования, порождает только потерю времени и сотнепостовые нити в форумах.