Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: библиотека xAJAX

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Открыть новую тему     Написать ответ в эту тему

6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Страница разработчика: http://xajax-project.org/
 
Последняя версия: xAJAX 0.6beta1
 
Докуменатция: Смотреть.
 
Решения:

 


 
Следует помнить!:
(мини-faq от 6epcepk'a)
  • Почему-то не обновляется/добавляется информация.
    Не забываем как должна выглядить функция:

    Код:
         
    function test() {
        $objResponse = new xajaxResponse();
        $objResponse->setCharEncoding('windows-1251');
        ...
        return $objResponse;
    }

     
  • Почему-то не обновляется/добавляется информация #2.
    Если присутствует символы кириллицы, то опять же вспоминаем как должна выглядить функция:

    Цитата:
         
    function test() {
        $objResponse = new xajaxResponse();
        $objResponse->setCharEncoding('windows-1251');
        ...
        return $objResponse;
    }

     
  • В базу данных добавляются кракозябры вместо кириллицы.
    А тут функция должна иметь другой вид:

    Цитата:
         
    function test() {
        $objResponse = new xajaxResponse();
        ...
        return $objResponse;
    }

     
  • Почемуто xajax.getFormValues('formID') не получает поля формы.
    Особенностью xajax является то что форма должна быть первого уровня или говоря другими словами не должна находиться в другой форме.
 





Лучше уточнить название, чтобы понятнее было о чем идет речь /Cheery/

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 23:12 18-04-2006 | Исправлено: Alukardd, 00:51 19-03-2011
lammerrr

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет. Народ. Возник вопрос - возможно немного не в тему.
Как сделать обратную совместимость с уже встречающимися javascript ами в коде, возвращаемом ajax из backenda в frontend, есть ли что-то универсальное?
 
(Допустим имею сайт построенный на цмс, кучу внутренних скриптов (часть дописана, доделана или взята слева - и в них уже присутствует "внутренний" яваскрипт который по подгрузке аджакс контента нужно выполнить, и не всегда его можно "достать" и выкинуть в head секцию руками там где нужно или подключить файлы со скриптами).
 
Никто не сталкивался с такой либой которая позволила бы хоть частично решить данную проблему. Никто не хочет присоединиться в написании чего либо подобного? Поделиться возникшими идеями?
 
Вопрос не привязан конкретно к библиотеке xajax.  
 
т. е. если подробнее вопрос начал подниматься здесь:
 
далее привожу комментарии @ Alex_b  
 
http://joomlaforum.ru/index.php/topic,16631.120.html
 
Для запуска скриптов в полученном тексте, я поступал вот таким образом:
____________________________
.......... = function(str){
 
    
 
var script, scripts = '', regexp = /<script[^>]*>([sS]*?)</script>/gi;
 
    
 
while ((script = regexp.exec(str))) scripts += script[1] + '\n';
 
    
 
if (scripts) (window.execScript) ? window.execScript(scripts) : window.setTimeout(scripts, 0);
}
____________________________
Т.е. весь полученный текст прогоняется через регулярное выражение.
Выхватывается то что между <script> и </script>, а потом запускается.
(Вот этот код я подглядел у moo tools).
В принципе это не слишком хорошо (о вреде eval достаточно кругом понаписано).
 
 
Ваше решение, кажется мне, лучше.
(с помощью DHTML строить script)
Притом, отлавливать JS скрипты с помощью php и передавать в отдельной переменной это тоже лучше, чем отсеивать их на клиенте.
 
Только компоненты не обязательно выводят JS скрипты в BODY,
а правильные компоненты выводят скрипты в HEAD.
 
Вот эти скрипты тоже нужно отлавливать.
 
 
Еще есть скрипты которые подключаются к странице
<script type="text/javascript" src="sript.js"></script>
Их тоже нужно вылавливать и подгружать.
 
Допустим с этим разобрались.
 
 
Все JS программисты, старающиеся написать хороший код, помимо того, что выводят скрипты в HEAD очень часто используют событие window.onload.
 
А, как известно, это событие наступает единожды – когда станица загружена полностью.
Т.е. значит среди полученного JS кода нужно будет отыскать это событие, вытащить обработчик этого события и опять eval.
(Есть еще событие body.onload – это тоже нужно учесть)
 
 
Допустим и с этим разобрались.
 
Но каждый уважающий себя JS программист не станет просто вешать обработчик на window.onload, он будет использовать что вроде
____________________________
finction handler(){
 
    
 
//code here
}
window.addEventListener("load", handler, false);
____________________________
 
Допустим и с этим покончено. Мы научили наш скрипт отыскивать теперь и window.addEventListener.
(кстати в замен window можно использовать self : self.addEventListener, так что и это придется учесть)
 
Однако если программист хороший он знает, что addEventListener работает не во всех браузерах, для некоторых нужно использовать attachEvent.
 
И у него в коде появляется вот такое:
____________________________
var attachevent = function(element, event, handler){
 
    
 
try {element.addEventListener(event, handler, false);}
 
    
 
catch (e){element.attachEvent("on"+event, handler);}
};
 
attachevent(self, "load", function(){
 
    
 
//code here
});
____________________________
А ну догадайтесь, где тут window.onload? А потом напишите реглярку, которая сможет отыскать это событие.
 
 
Даже если вам это удалось – вы зря потратили время. Другой программист будет использовать другую функцию.
 
И так с каждым событием – нажатие на кнопке, потеря фокуса и т.п. я уж не говорю про эксклюзивные события которые нам предлагают библиотеки, например domready.
 
 
Если и это для вас не проблема, то вспомните на чем все держится.
На innerHTML !!!
innerHTML не в ходит ни в один стандарт, т.е. если вы пишите супер грамотное приложение и придерживаетесь стандартов, скажем w3c, вы не станете использовать innerHTML.
Браузеры очень по разному относятся к innerHTML, вот почему у вас и не хочет  «отображаться в DOM инспекторе» все что вы таким путем вставили.
 
 
 
И что в итоге у вас получилось – работающая таким образом система (если она будет работать) будет профессиональной?
 
Если нам нужно хорошее приложение Ajax – его нужно и строить как хорошее приложение. Без eval, без всего этого сумасшествия.
 
Идея имела смысл до определенного момента, когда мы подгружаем обычный текст, но может немного JS-красивостей.

Всего записей: 3 | Зарегистр. 18-03-2006 | Отправлено: 13:28 08-10-2007
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Как сделать обратную совместимость с уже встречающимися javascript ами в коде, возвращаемом ajax из backenda в frontend, есть ли что-то универсальное?  

Вынести код в ООП библиотеки и потом в xajax-function: $xajax->srcipt?

----------
comming soon..

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 21:01 08-10-2007
SRangeR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хотелось бы узнать как заставить через аякс вывести стандартну форму сохранения файла.
 
при использовании  Header("Location: $files_url");
возникает ошибка:
Tue, 09 Oct 2007 23:47:33 GMT-0700
ERROR: No response processor is available to process the response from the server.
Content-Type: image/jpeg
Tue, 09 Oct 2007 23:47:33 GMT-0700
RECEIVED [status: 200, size: 20577 bytes, time: 93ms]:
и непонятными символами сам видимо файл...

Всего записей: 37 | Зарегистр. 07-04-2007 | Отправлено: 23:50 09-10-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SRangeR

Цитата:
Хотелось бы узнать как заставить через аякс вывести стандартну форму сохранения файла.  

никак.. создаем iframe со ссылкой на файл и все.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:52 09-10-2007
SRangeR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кто нить делал что-то наподобии bb-кодов на Xajax?
Чтобы выделить текст, щеклнуть на кнопку и вставлялся код

Всего записей: 37 | Зарегистр. 07-04-2007 | Отправлено: 00:16 10-10-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SRangeR

Цитата:
кто нить делал что-то наподобии bb-кодов на Xajax?
Чтобы выделить текст, щеклнуть на кнопку и вставлялся код

при чем тут ajax? это делается на js и все..  


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:23 10-10-2007
SRangeR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
это делается на js и все..
 
Я хочу на xajax сделать. Вот потому и спрашиваю.

Всего записей: 37 | Зарегистр. 07-04-2007 | Отправлено: 08:53 10-10-2007
SRangeR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подлючение сторонних js делается как? - $objResponse->includeScriptOnce("bb.js");
или я ошибаюсь...

Всего записей: 37 | Зарегистр. 07-04-2007 | Отправлено: 16:59 10-10-2007 | Исправлено: SRangeR, 17:19 10-10-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SRangeR

Цитата:
Я хочу на xajax сделать.

ок.. задам вопрос иначе - каким образом ты хочешь при этом использовать xajax?  
чтобы он выполнял какую функцию?
только не повторяй то, что написал выше. будет говорить лишь о том, что ты не понимаешь как и что работает.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 17:44 10-10-2007
SRangeR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В общем решил вставить js
использую фукнцию $objResponse->includeScript("../include/bb.js");
 
хотел проверить как работает
$objResponse->script(' try { if (bb.code.loaded) xajax.$("report").innerHTML += "<br />iframe.js loaded in iframe context"; } catch (e) { xajax.$("report").innerHTML += "<br />iframe.js *NOT* loaded in iframe context"; }');
 
говорит не загружен. да и функции не выполняются.  
 
0,5 бета 4

Всего записей: 37 | Зарегистр. 07-04-2007 | Отправлено: 21:08 10-10-2007
SRangeR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сам быстрее разберешься, чем тут кто-то что ответит )))

Всего записей: 37 | Зарегистр. 07-04-2007 | Отправлено: 13:13 13-10-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SRangeR

Цитата:
сам быстрее разберешься, чем тут кто-то что ответит )))

1) потому что тут не чат
2) потому что не каждый пользуется этим скриптом.
js не просто так подключить.
можно сделать через DOM, как на борде, к примеру, я сделал подзагрузку клавиатуры
но в части браузеров не будет работать.
можно получить содержимое js файла и сделать для него eval
насчет вставку через innerHTML - не уверен, что это сработает

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:04 13-10-2007
NBlade

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может кто-нить подсказать: написал скрипт используя xajax, все работает, отлично. Делаю инклуд этого скрипта в cms - не работает Дебаг показал, что все нормально - все результаты возвращаются функцией верно (видимо проблема на стадии подстановки яваскриптом в код страницы результатов). Стер весь дизайн - все равно не работает. Cms netcat 2.4

Всего записей: 3 | Зарегистр. 18-12-2006 | Отправлено: 12:38 29-10-2007
SRangeR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а пример кода будет?
 
и проще написать свою cms на этом фрейм ворке) как например делаю йа )

Всего записей: 37 | Зарегистр. 07-04-2007 | Отправлено: 15:13 30-10-2007
myaGi

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ребят, все перерыл.  
есть 2 выпадающих селект списка. надо чтобы при выборе из 1го во втором показывались элементы привязанные к выбранному. видел много раз реализацию. как сделать хз.

Всего записей: 78 | Зарегистр. 24-04-2006 | Отправлено: 14:44 31-10-2007
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
myaGi
По событию onChange первого списка вызываем ajax-функцию, которая генерирует response во второй список.
Попробуйте, а мы исправим ошибки, если что..

----------
comming soon..

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 18:43 31-10-2007
myaGi

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
да пробовал но додумать не могу.
<select onchange="phpfunc()">...
<option ...>...
как передать функции какое выбрано значение из списка.

Всего записей: 78 | Зарегистр. 24-04-2006 | Отправлено: 20:10 31-10-2007
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Код:
<select onChange="xajax_myFunc(this.value);">

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 20:41 31-10-2007
myaGi

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
спасибо 6epcepk. как мало надо то. первая ступенька преодолена

Всего записей: 78 | Зарегистр. 24-04-2006 | Отправлено: 21:56 31-10-2007
SRangeR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть предложение создать русско-язычный сайт по фреймворку xAJAX.
Для чего?
для перевода документации и продвижения фреймворка в массы
Что будет кроме документации?
CMS  с использованием фреймворка!
Форум)))
 
Если есть желание пишите. Надежный хостинг обеспечу)

Всего записей: 37 | Зарегистр. 07-04-2007 | Отправлено: 13:00 01-11-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: библиотека xAJAX


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru