Один запрос - мульти ответ - заполнение нескольких блоков
Fullajax Support - AJAX + AHAH
Февраля 07, 2012, 03:49:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Один запрос - мульти ответ - заполнение нескольких блоков  (Прочитано 9077 раз)
Ruslan
Administrator
*****

Авторитет: 29
Сообщений: 1 130



Просмотр профиля
« : Ноября 27, 2008, 14:01:20 »

Рассмотрим пример на 2х элементах которые нужно заполнить за 1 запрос.
Решается это серверным средством и волшебной моделью.

Сперва построим "волшебную" модель.


Код
javascript:
 
SRAX.Model2Blocks['my-id'] = {
  'content':'div-content',
  'baner':'div-baner'
}


Даная модель определяет таблицу (обьект) соответствия меток, блоков в
серверном ответе к реальным  ИД элементов, в которые эти блоки должны
быть вставлены.

Для этой модели со стороны сервера должен придти следующий ответ:

Код
html4strict:
 
<!-- :ax:content:begin: //-->
HTML of CONTENT-BLOCK
<!-- :ax:content:end: //-->

anything - will be ignored

Код
html4strict:
 
<!-- :ax:baner:begin: //-->
HTML of BANER-BLOCK
<!-- :ax:baner:end: //-->
Вот и все! Теперь следующим запросом мы заполняем 2 элемента.


Код
javascript:
 
hax({url:'test.html',id:'my-id'})

Важно: теперь ИД в функции hax - это не ИД эелемента , а ИД  таблицы
(обьекта) соответствия Model2Blocks который мы расписали выше - в
данном примере 'my-id'
« Последнее редактирование: Марта 04, 2009, 09:34:54 от Ruslan » Записан
Joker
Новичок
*

Авторитет: 0
Сообщений: 21


Просмотр профиля WWW
« Ответ #1 : Марта 03, 2009, 15:16:41 »

привильно ли я понимаю, что при переходе на старницу test.html будут изменени 2 div :
div-content',div-baner' в них будет загружена инфоармция
из
Код
html4strict:
 
<!-- :ax:content:begin: //-->
HTML of CONTENT-BLOCK
<!-- :ax:content:end: //-->
и
Код
html4strict:
 
<!-- :ax:baner:begin: //-->
HTML of BANER-BLOCK
<!-- :ax:baner:end: //-->

? если да то как формировать эти блоки ? в исходниках только js файлы
Записан
Ruslan
Administrator
*****

Авторитет: 29
Сообщений: 1 130



Просмотр профиля
« Ответ #2 : Марта 04, 2009, 09:40:27 »

понимаете правильно, и блоки эти формировать надо самому,
добавляйте обрамление в начало блока <!-- :ax:block_id:begin: //--> и в конец блока <!-- :ax:block_id:end: //-->

серверный код каждый уже под свою систему пишет.

Приведу пример PHP функции, которая используется в связке Фулаякс-Джумла

Код
php:
 
function add_block($name,$text){
   $block = '<!-- :ax:'.$name.':begin: //-->';
   $block .= $text;
   $block .= '<!-- :ax:'.$name.':end: //-->';
   $this->block[] = $block;
}
Записан
Joker
Новичок
*

Авторитет: 0
Сообщений: 21


Просмотр профиля WWW
« Ответ #3 : Марта 04, 2009, 11:12:03 »

все замечательно, спасибо за пример. вот теперь все понятно!
Записан
Gloom
Новичок
*

Авторитет: 0
Сообщений: 6


Просмотр профиля
« Ответ #4 : Декабря 07, 2009, 19:55:43 »

Насколько я понимаю при желании вызвать 3 элемента волшебная модель будет
Код
javascript:
 
SRAX.Model3Blocks['my-id'] = {
  'content':'div-content',
  'baner':'div-baner',
  'baner2':'div-baner2'
}
Непонимающий
стоит попробовать конечно... просто хотелось знать наверняка  Улыбающийся
« Последнее редактирование: Декабря 07, 2009, 19:57:40 от Gloom » Записан
Ruslan
Administrator
*****

Авторитет: 29
Сообщений: 1 130



Просмотр профиля
« Ответ #5 : Декабря 07, 2009, 20:25:33 »

да
Записан
Gloom
Новичок
*

Авторитет: 0
Сообщений: 6


Просмотр профиля
« Ответ #6 : Декабря 10, 2009, 15:48:19 »

Скрипт:
Код
javascript:
 
SRAX.Filter.add({id:'fullAjax', url:'ax_'});
SRAX.onReady(SRAX.directLink);
SRAX.linkEqual[':ax:fullAjax:'] = ':';
SRAX.Model2Blocks['fullAjax'] = {
  'fullAjax':'fullAjax',
  'right_content':'right_content'
}
SRAX.Effect.add({id: 'fullAjax',
    start:function(id, request){
         SRAX.Fx('fullAjax').opacity({end:0.2, d:0.4, cb:request})
         },
    end:function(){
         SRAX.Fx('fullAjax').opacity({end:2, d:0.3})
         }
  });
 
 
Вызываемое содержимое:
Код
javascript:
 
<!-- :ax:fullAjax:begin: //-->
content one
<!-- :ax:fullAjax:end: //-->
<!-- :ax:right_content:begin: //-->
content two
<!-- :ax:right_content:end: //-->

Вопрос: как при отсутствии fullAjax или right_content в вызываемом содержимом сделать так, чтобы эффект прозрачности срабатывал только там где будет выведен имеющийся блок?

И как можно при присутствии в содержимом обоих блоков вызвать только один из них?

Вроде понятно выразился... если нет - спрашивайте, поясню
« Последнее редактирование: Декабря 10, 2009, 16:02:08 от Gloom » Записан
Ruslan
Administrator
*****

Авторитет: 29
Сообщений: 1 130



Просмотр профиля
« Ответ #7 : Декабря 11, 2009, 13:11:29 »

как при отсутствии fullAjax или right_content в вызываемом содержимом сделать так, чтобы эффект прозрачности срабатывал только там где будет выведен имеющийся блок?
можно как-то так

Код
javascript:
 
...
var el = id('right_content');
if (el) SRAX.Fx(el).opacity({end:2, d:0.3})
...

И как можно при присутствии в содержимом обоих блоков вызвать только один из них?
не понял.
Записан
Karpo
Новичок
*

Авторитет: 0
Сообщений: 6


Просмотр профиля
« Ответ #8 : Апреля 16, 2011, 10:02:41 »

А фильтр будет работать с волшебной моделью?
« Последнее редактирование: Апреля 16, 2011, 15:08:16 от Karpo » Записан
Ruslan
Administrator
*****

Авторитет: 29
Сообщений: 1 130



Просмотр профиля
« Ответ #9 : Апреля 19, 2011, 22:47:58 »

А фильтр будет работать с волшебной моделью?
будет
Записан
jadjer
Новичок
*

Авторитет: 0
Сообщений: 1


Просмотр профиля
« Ответ #10 : Декабря 30, 2011, 12:18:04 »

Возникла проблема..
Сайт на joomla, использовал данную модель... Все бы хорошо, но...
Если на одной странице загрузить блок с контентом, а затем перейти на другую страницу где этот блок отсутствует, то блок остается неизменным, и отображается информация с предыдущей страницы
Теперь вопрос: как при отсутствии контента сделать чтоб блок не выводился?
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC | Sitemap Valid XHTML 1.0! Valid CSS!