Искать  
 
   
2 из 4
2
Доска объявлений на EE
Отправлено: 07 Декабрь 2010 08:46 P.M.   [ Игнорировать ]   [ # 16 ]
Member
RankRankRank
Всего сообщений:  191
Зарегистрирован  2009-03-17

тебе нужно связать не со строчкой (EE тегом) в SAEF, а с полем в форме SAEF (уже отрендеренной на стороне клиента). jquery это javascript библиотека и работает она с html а не с тегами EE
расшифрую свой код:

При изменении селекта получаем выбранное значение и подставляем его в инпут, который отвечает за ID веблога куда публикуется запись. Грубо говоря делаем подмену в зависимости от выбора. Только убери атрибут multiple - данный код не для множественного выбора.

Профиль
 
 
Отправлено: 07 Декабрь 2010 09:04 P.M.   [ Игнорировать ]   [ # 17 ]
Новичок
Rank
Всего сообщений:  47
Зарегистрирован  2008-04-02

я какой-то момент упускаю smile

SAEF уже вызывается с определением в какой блог пользователь будет постить.

{exp:weblog:entry_form weblog="sell" return="site/index" preview="site/entry"}

<table>
<
tr><td>
...
 
всякие формы
...
</
td>
</
tr>
</
table>

{/exp:weblog:entry_form} 
Профиль
 
 
Отправлено: 07 Декабрь 2010 09:16 P.M.   [ Игнорировать ]   [ # 18 ]
Member
RankRankRank
Всего сообщений:  191
Зарегистрирован  2009-03-17

каким средством разработчика ты пользуешься для отладки html кода в браузере? вот, врубай его.

а упускаешь ты следующий момент:

над таблицей со “всякими формами” должен быть блок:

<div class="hiddenFields"
...
всякие инпуты
...
</
div

вот там то и лежит заветный наш инпут

<input type="hidden" name="weblog_id" value="4"

в который мы и будем подкладывать свой веблог айди.

Профиль
 
 
Отправлено: 07 Декабрь 2010 10:46 P.M.   [ Игнорировать ]   [ # 19 ]
Новичок
Rank
Всего сообщений:  47
Зарегистрирован  2008-04-02

Nik, понял о чем ты.

только теперь проблема, что код твой не работает smile

$('select[name="weblog_name"]').change(function() {
    
var = $(this).val();
    $(
'input[name="weblog_id"]').val(v); 
}); 

тут разве не присваивается непосредственно значение, которое стоит в селекте?
Ну, т.е. у меня там слова, а вставляться-то должно число.

почитал про jquery - хорошая штука.

Профиль
 
 
Отправлено: 07 Декабрь 2010 10:53 P.M.   [ Игнорировать ]   [ # 20 ]
Новичок
Rank
Всего сообщений:  47
Зарегистрирован  2008-04-02

ан нет, туплю опять. Работает smile
спасибо, Ник

Профиль
 
 
Отправлено: 07 Декабрь 2010 11:08 P.M.   [ Игнорировать ]   [ # 21 ]
Новичок
Rank
Всего сообщений:  47
Зарегистрирован  2008-04-02
<select name="weblog_name" size="10">
    <
option value="3">Продам</option>
    <
option value="2">Куплю</option>
    <
option value="4">Сдам</option>
    <
option value="5">Возьму в аренду</option>
    <
option value="6">Услуги</option>
</
select>

[removed]
$('select[name="weblog_name"]').change(function() {
    
var = $(this).val();
    $(
'input[name="weblog_id"]').val(v); 
});
[removed] 

а, ну к опшинам надо было добавить “value=” smile

Профиль
 
 
Отправлено: 07 Декабрь 2010 11:22 P.M.   [ Игнорировать ]   [ # 22 ]
Member
RankRankRank
Всего сообщений:  191
Зарегистрирован  2009-03-17

да, jquery - волшебство. как раньше жили без него?

Профиль
 
 
Отправлено: 07 Декабрь 2010 11:37 P.M.   [ Игнорировать ]   [ # 23 ]
Новичок
Rank
Всего сообщений:  47
Зарегистрирован  2008-04-02

да я припадками вебстроительством занимаюсь smile
слово “jquery” где-то мелькало все, понятно было, что связано с javascript’ом, но только вот сегодня решил посмотреть, что за зверь. Причем в связи с другим smile Сделал показ скрытого содержимого по клику по ссылке

Профиль
 
 
Отправлено: 09 Февраль 2011 12:18 A.M.   [ Игнорировать ]   [ # 24 ]
Студент
Avatar
RankRank
Всего сообщений:  113
Зарегистрирован  2010-07-12

Подскажите плиз в чем проблема.
Вот такой код у меня работает:

<input type="radio" name="weblog_name" value="7" CHECKEDПродам</input>
                <
input type="radio" name="weblog_name" value="6"Куплю</input>
                <
input type="radio" name="weblog_name" value="9"Услуги</input>
                <
input type="radio" name="weblog_name" value="10"Вакансии</input>
   
                <
input type="hidden" name="weblog_id" value="4"
    
    
[removed]
        
$('input[name="weblog_name"]').change(function() {
            
var = $(this).val();
            $(
'input[name="weblog_id"]').val(v); 
        
});
    
[removed] 

А когда пытаюсь сделать все тоже самое но только со списком, отказывается работать:

<select name="weblog_name">
                <
option value=6>Продать</option>
                <
option value=7>Купить</option>
                <
option value=9>Услуги</option>
                <
option value=10>Вакансии</option>
            </
select>
   
   
                <
input type="hidden" name="weblog_id" value="4"
    
    
[removed]
        
$('select[name="weblog_name"]').change(function() {
            
var = $(this).val();
            $(
'input[name="weblog_id"]').val(v); 
        
});
    
[removed] 
Профиль
 
 
Отправлено: 09 Февраль 2011 09:37 A.M.   [ Игнорировать ]   [ # 25 ]
Member
RankRankRank
Всего сообщений:  191
Зарегистрирован  2009-03-17

4ksner
смотри в дебаггере у меня твой код работает. Даже в IE

Профиль
 
 
Отправлено: 09 Февраль 2011 09:37 P.M.   [ Игнорировать ]   [ # 26 ]
Студент
Avatar
RankRank
Всего сообщений:  113
Зарегистрирован  2010-07-12

Пробовал удалял все лишнее, оставлял только заголовок и выбор блога, расширения отключал, но не помогло.
В дебаггере ни чего интересного не пишет.
Придется наверное забить и сделать Инпутами.

Профиль
 
 
Отправлено: 09 Февраль 2011 09:55 P.M.   [ Игнорировать ]   [ # 27 ]
Member
RankRankRank
Всего сообщений:  191
Зарегистрирован  2009-03-17

ну вот же, загляни:
http://jsfiddle.net/CakND/

чистый код - все работает. для наглядности заменил инпут хидден на текст

Профиль
 
 
Отправлено: 09 Февраль 2011 10:33 P.M.   [ Игнорировать ]   [ # 28 ]
Студент
Avatar
RankRank
Всего сообщений:  113
Зарегистрирован  2010-07-12

Nik, спасибо что не дал бросить затею!
Это я сижу туплю здесь. В коде выше я ошибку допустил в value перепутал id блогов Куплю и Продам, из за этого у меня не туда публиковалось куда надо.
Спасибо!

Я вот что еще хочу сделать:

<select name="weblog_name">
                <
option selected="selected" disabled="disabled">- выберите раздел -</option>
                <
option value=7>Продать</option>
                <
option value=6>Купить</option>
                <
option value=9>Услуги</option>
                <
option value=10>Вакансии</option>
            </
select

Чтобы по умолчанию отображалась надпись “выберите раздел”. Но если пользователь забудет выбрать и добавит объявление то оно опубликуется в блог по умолчанию.
Я добавил к кнопке Submit функцию которая выдает Алерт с сообщением, что раздел не выбран, но после закрытия сообщения информация все-равно отправляется.
Как можно обойти это?

Профиль
 
 
Отправлено: 09 Февраль 2011 10:48 P.M.   [ Игнорировать ]   [ # 29 ]
Member
RankRankRank
Всего сообщений:  191
Зарегистрирован  2009-03-17

Для валидации формы на клиентской стороне настоятельно рекомендую использовать соответствующий jquery plugin
http://bassistance.de/jquery-plugins/jquery-plugin-validation/

Сэкономишь кучу времени и нервов и себе и посетителям, когда перенесешь проверку форм на сторону клиента.

Профиль
 
 
Отправлено: 09 Февраль 2011 10:53 P.M.   [ Игнорировать ]   [ # 30 ]
Студент
Avatar
RankRank
Всего сообщений:  113
Зарегистрирован  2010-07-12

Спасибо за ссылочку.
В демо отлично работает, неплохо было бы наладить себе.
Завтра на свежую голову буду изучать.

Профиль
 
 
   
2 из 4
2