Доска объявлений на EE |
|
|
|
Студент
Всего сообщений: 113
Зарегистрирован 2010-07-12
|
Есть такой код в SAEF:
{category_menu} <select name="category[]"> {select_options} </select> {/category_menu}
Который отвечает за выбор категории при добавлении записи.
Интересует как сделать чтобы при выборе категории, ниже отображалось ее описание.
Может кто подсказать?
|
|
|
|
|
|
Member
Всего сообщений: 191
Зарегистрирован 2009-03-17
|
что касается клиентской части, то смотри как вариант http://jsfiddle.net/TCA32/
|
|
|
|
|
|
Студент
Всего сообщений: 113
Зарегистрирован 2010-07-12
|
|
|
|
|
|
|
Студент
Всего сообщений: 113
Зарегистрирован 2010-07-12
|
Опять нужна помощь.
На странице, чтобы добавить объявление, нужно выбрать соответствующий пункт в поле Select, после чего просходит подгрузка нужного шаблона через этот аякс:
function buy() { $.ajax({ type: "GET", url: "/add-advert-buy", // содержимое контента cache: true, // не кешировать результы beforeSend: function () { document.getElementById("loading").style.display="block"; }, complete: function(){ document.getElementById("loading").style.display="none"; }, success: function(html){ $("#sell_buy").html(html); // запись контейнера } }); };
Все подгружается и вроде как работает, кроме поля Matrix. В нем не появляется строка “добавить строку”.
Добавлял загрузку jquery скриптов в оба шаблона, но все без результата.
Одна особенность: Если в поле Select выбрать что-либо до того как страница загрузится, тогда Matrix полностью функционирует.
|
|
|
|
|
|
Member
Всего сообщений: 191
Зарегистрирован 2009-03-17
|
сам я саефом не занимаюсь, но направить где копать смогу тебя.
в твоем коде после успешной загрузки шаблона с матриксом нужно дернуть инициализацию матрикса принудительно. подозреваю, матрикс инициализируется на document ready, а с аджаксом это другой случай. что на счет принудительной инициализации говорит мануал по матриксу, какие там есть события, методы?
|
|
|
|
|
|
Студент
Всего сообщений: 113
Зарегистрирован 2010-07-12
|
Блин, даже не знаю где и что капать.
|
|
|
|
|
|
Студент
Всего сообщений: 113
Зарегистрирован 2010-07-12
|
Nik, ты был прав, Матриксу нужна была инициализация. Я взял отдельный шаблон с ним, и посмотрел исходный код на выходе, и нашел там это:
jQuery(window).bind("load", function() { jQuery("#field_id_28").ffMatrix("field_id_28", [{"type":"ngen_file_field","cell":"<div class='ngen-file-field-block'><input type='file' name='field_id_28[0][6]' class='ngen-file-input' \/>\n<input type='hidden' name='field_id_28[0][6][file_name]' \/>\n<\/div>"}], 5); });
Я добавил этот исполняемый фрагмент в поле success своего скрипта, и все заработало.
Спасибо, что откликнулся.
|
|
|
|
|
|
Member
Всего сообщений: 191
Зарегистрирован 2009-03-17
|
не за что обращайся по jquery если что.
молодец, что сам раскопал и разобрался, думаю кому-нибудь тоже пригодится
|
|
|
|
|
|
Новичок
Всего сообщений: 47
Зарегистрирован 2008-04-02
|
Новый вопрос
как менять раздел в SAEF на лету мы разобрались. Спасибо Nik’у.
А как поменять список категорий, соответствующих выбранному разделу, на лету? Например, в ‘Advanced Search Form’ это, на сколько я понял, реализовано через
onchange='changemenu(this.selectedIndex);'
Т.е. если для разделов “Куплю” и “Продам” категории одинаковые, то для раздела “Услуги” категории различаются.
Но, так как я не в ладах с js, посоветуйте, пожалуйста, как это лучше реализовать?
|
|
|
|
|
|
Member
Всего сообщений: 191
Зарегистрирован 2009-03-17
|
смотри
http://jsfiddle.net/h5XB3/1/
зависит конечно от контекста, я подобные задачи не делал. Поэтому вариант может не подойти в деталях, но суть такова:
1 помимо формы для каждой группы категорий генеришь скрытые селекты с опциями (или внутри формы но без атрибутов name, что бы они не сабмитились и достукиваешься до них допустим через id)
2 при выборе блога куда будешь публиковать запись подменяешь в форме в селекте категорий опции из соответствующих созданных в п. 1
|
|
|
|
|
|
Новичок
Всего сообщений: 47
Зарегистрирован 2008-04-02
|
Nik, в очередной раз большое тебе спасибо. Пример вроде рабочий. Единственное, что если для блогов “Куплю” и “Продам” категории выводятся автоматом.
{category_menu} Категория </td> <td class="add_td"> <select class="formcanvas" name="category[]" size="10" multiple="multiple"> {select_options} </select> {/category_menu}
То если выбирать еще из “Услуг”, надо их все вбивать вручную с их id.
Но это не главное столкнулся уже с новой проблемой: в блоге “Услуги” немного другие поля. А так как поля выводятся опять же через теги {custom_fields}{/custom_fields}, то встает вопрос, а их как менять? Тоже вручную нужно будет вбить?
|
|
|
|
|
|
Новичок
Всего сообщений: 47
Зарегистрирован 2008-04-02
|
блин, или бросить эту затею сводить все на одной странице (как на http://www.avito.ru/additem)?
сделать основной страницу добавления объявлений только с разделами “Куплю” и “Продам”. А для услуг сделать отдельную страницу, тем самым выделив эту категорию пользователей и предоставив им возможность размещать фотографии своих работ да и вообще делать странички-визитки с контактной информацией и портфолио, м?
|
|
|
|
|
|
Member
Всего сообщений: 191
Зарегистрирован 2009-03-17
|
ну тут тебе виднее
теоретически можно сделать 2 шаблона с формами - первый для обнообразных куплю продам, второй для услуг и на первом шаблоне сделать возможность выбора если выбраны услуги то аджаксом подгружать второй шаблон
|
|
|
|
|
|
Новичок
Всего сообщений: 47
Зарегистрирован 2008-04-02
|
тоже об этом сразу подумал, но с аяксом не знаком Покопавшись на ЕЕ форуме, нашел прмиер такого кода:
[removed] $.ajaxSetup ({ cache: false, type: "POST" }); var loadUrl = "http://mysite.ru/testnote"; $("div.content").load(loadUrl); [removed]
<div class="content"></div>
но он чего-то не работает. Nik, с какого боку мне к нему подступиться?
|
|
|
|
|
|
Member
Всего сообщений: 191
Зарегистрирован 2009-03-17
|
я придумал альтернативное решение. Что если тебе вывести на странице 2 формы. Оформить все с помощью закладок. Одну спрятать, а одну отображать сразу, и переключать их в зависимости от выбранной закладки.
см. решение с закладками http://code.google.com/p/minitabs/
|
|
|
|