Создал тему в этом разделе, т.к. прежде всего тут будет AJAX, однако как реализовать вывод в xslt в моем случае я не знаю.
Итак..XSLT шаблонизатор.
Есть три справочника. Страны, города, улицы.
Сначала выводим страны из справочника стран - это смог,
<xsl:template match="udata/item" mode="guide.list">
<xsl:param name="guide-list-id" select="@id" />
<xsl:param name="guide-list-name" select="@name" />
<a href="result_page?id={$guide-list-id}">object_name=<xsl:value-of select="$guide-list-name"/></a><br/>
</xsl:template>
но не смог каждой ссылке уник.ИД дать при выводе.
Далее после клика по стране, подгружаем ее города (их ниже выводим в какомнибудь div'e).
И снова после выбора уже города, заменяем список городов списком улиц уже из третьего справочника.
Впринципе, будь это все на php с выборкой из базы, я бы справился (просто уникальный $id ссылкам, вывод, ajax ) сделал бы...но тут, ПРОШУ ПОМОЩИ!
Хм..посмотрел...у меня XML есть, по выборке списка справочника...я понял как туда парамерт передается {1} например...и понял что сделать...только напортачил небось,т.к. не работает...
запрос:
<xsl:apply-templates select="document(concat('usel://guide/',123))/udata/item" mode="guide.list"/>
usel:
<?xml version="1.0" encoding="utf-8"?>
<selection>
<target result="objects">
<property name="gruppa" value="Легковые автомобили"/>
<type id="{1}" />
</target>
</selection>
Выбирает все,а надо только один пост (где я выбрал легковые)
А подробнее можно про подтипы?
И вот основное:
покопался в инете (http://xmlhack.ru/books/xslt/ch_11_05.html#ch_11_05_01)
и нашел циклы для xslt
НО НЕ ЗНАЮ КАК ОБРАЩАТЬСЯ!!!
это код самого скрипта, насколько я понял:
<xsl:template name="while">
<xsl:param name="i"/>
<xsl:param name="result"/>
<xsl:choose>
<xsl:when test="$i != 0">
<xsl:call-template name="while">
<xsl:with-param name="i" select="$i - 1"/>
<xsl:with-param name="result" select="$result * $i"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$result"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
это шаблон вывода результата скрипта:
<xsl:template match="/" mode="guide.while">
<xsl:call-template name="while">
<xsl:with-param name="i" select="6"/>
<xsl:with-param name="result" select="1"/>
</xsl:call-template>
<xsl:value-of select="$result"/>
</xsl:template>
P.S. mode="guide.while" прописал сам,по аналогии со справочником..
НО!! как к нему обратиться из другого места страницы???
например мы делали так для справочника:
<xsl:apply-templates select="document('usel://guide/45/508')/udata/item" mode="guide.list"/>
тут тоже апли темплэйтс будет, но как именно писать их для моего случая? подскажи, я по аналогии уже разберусь и дальше.
Вот что имеется:
Запрос /usel/guide/45/508 формируется автоматически в скрипте, в зависимости от кликнутой ссылки.
Вот сам json
{
"item": {
"0": {
"id": 512,
"guid": "",
"name": "Обыкновенный грузовик",
"type-id": 45,
"ownerId": 9,
"href": "/uobject/512.json"
}
},
"total": 3
}
Пришлось кстати убрать в самом движке юми генерацию строки this page generated in seconds в конце файла json...изза этой строки блин мучался целый час,думал скрипт не тот.
Вот сам скрипт обработки, он мне возвращает правильные значения total
$.getJSON(strings, {}, function(json){
$('#block1').html('');
$('#block1').append('Name: ' + json.total + '<br/>');
});
Но если мне нужны другие значения, то я ничего не могу поделать.
Строку
('#block1').append('Name: ' + json.item.0.name + '<br/>');
JS просто не воспринимает!!
item.1 - выделяется красным, дальше все хуже...короче не стоит типа использовать слово item, оно какбы системное чтоли..
НО Я НИЧЕГО НЕ МОГУ ПОДЕЛАТЬ, UMI ВЫДАЕТ СПИСОК ИМЕННО В ФОРМАТЕ item>номер>параметр
Как правильно прописать строку
$('#block1').append('Name: ' + json.item.0.name + '<br/>');
Чтобы заработало???
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>РАЗОБРАЛСЯ
json.item[0].name