Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Изменение значения input при клике по ссылкам (https://javascript.ru/forum/jquery/42159-izmenenie-znacheniya-input-pri-klike-po-ssylkam.html)

rammstein 15.10.2013 14:38

Изменение значения input при клике по ссылкам
 
День добрый, пожалуйста выручайте. Сам на силён в яваскрипте :(
две группы ссылок с id 1,2,3,4 + z1,z2,z3,z4,z5 и форма
по клику в каждой группе выбирается одна. К примеру пользователь выбрал 1+z4
как-то можно сделать так, чтобы input hidden а форме приобретал значения 1_z4 ну и так, чтобы её передать в php

animhotep 15.10.2013 14:41

Цитата:

Сообщение от rammstein
можно сделать так, чтобы input hidden а форме приобретал значения 1_z4

можно, задайте ему value = 1_z4
в php передать можно по сабмиту формы

rammstein 15.10.2013 14:56

Цитата:

Сообщение от animhotep (Сообщение 276539)
можно, задайте ему value = 1_z4
в php передать можно по сабмиту формы

Вот отсюда и вопрос топика: как ему задать эту переменную?
пользователь выбирает совершенно разные значения
ну и ещё как-то нужно объединить выбранные, т.е. "1"+"_"+"z4"
между переменными воткнуть "_"

danik.js 15.10.2013 15:13

Ссылка должна куда-то ссылаться. Куда у тебя ссылаются твои ссылки?

Такие контролы не подойдут?:
<label><input type="radio" name="r1" /> Option 1</label>
<label><input type="radio" name="r2" /> Option 2</label>
<select size="2">
<option>Option 1</option>
<option>Option 1</option>
</select>

rammstein 15.10.2013 15:37

ссылки:
<ul>
            <li><a class="cur" id="ROOM" href="#">комнату, квартиру </a></li>
            <li><a id="NEWBUILDING" href="#">новостройку </a></li>
            <li><a id="HOUSE" id href="#">дом, коттедж </a></li>
            <li><a id="COMMERCE" href="#">коммерческую </a></li>
            <li><a id="LAND" href="#"> земельный участок </a></li>
            <li><a id="DACHA" href="#"> дачу </a></li>

        </ul>
        <ul>
            <li><a id="BUY" class="cur" href="#"> КУПИТЬ</a></li>
            <li><a id="RENT" href="#"> СНЯТЬ </a></li>
            <li><a id="SELL" href="#">ПРОДАТЬ </a></li>
            <li><a id="PASS" href="#"> СДАТЬ </a></li>

        </ul>


скриптик

jQuery(document).ready(function() {
    $('.filter__form__radios a').click(function() {
        if (!$(this).hasClass('filter__form__radios__disable'))
            $(this).toggleClass('filter__form__radios__active')
    });


    $('.filter__vert-buttons ul a, .filter__hor-buttons ul a').bind('click', function() {
        $(this).closest('ul').find('a').removeClass('cur');
        $(this).addClass('cur');

        filter();
    });

    filter();
});

function filter() {
    var vertID = $('.filter__vert-buttons a.cur').attr('id');
    var horID = $('.filter__hor-buttons a.cur').attr('id');
    var fitems = $('.filter__form__item');
    fitems.css('display', 'none');
    $('.' + horID + '_' + vertID).css('display', 'block');
}


но фишка в том, что скрипт лишь скрывает некоторые поля формы, а выборка из БД идет по одной таблице, в которой, к примеру, идентификатор action_type = ROOM_RENT отвечает за аренду квартир.
вот и возникла идея установить скрытый динамический input, зависящий от выбранных параметров (купить+коттедж=HOUSE_BUY, Арендовать+квартиру=ROOM_RENT)
или может есть другой выход?

danik.js 15.10.2013 21:23

<style>
    label {
        cursor: pointer;
        overflow: hidden;
    }
    label span{
        color: #284A67;
        text-decoration: underline;
    }
    label input{
        position: absolute;
        right: 100%;
    }
    label input:checked + span{
         color: red;
    }
    fieldset{
        border: 1px solid #ccc;
        margin: 0 0 20px;
    }
</style>
<form method="get" target="_blank" action="http://site.ru/handler">
<fieldset>
<div><label> <input type="radio" name="what" value="ROOM" required /> <span>комнату, квартиру</span></label></div>
<div><label> <input type="radio" name="what" value="NEWBUILDING" required /> <span>новостройку</span> </label></div>
<div><label> <input type="radio" name="what" value="HOUSE" required /> <span>дом, коттедж</span> </label></div>
</fieldset>
<fieldset>
<div><label> <input type="radio" name="action" value="BUY" checked required /> <span>КУПИТЬ</span></label></div>
<div><label> <input type="radio" name="action" value="RENT" /> <span>СНЯТЬ</span> </label></div>
<div><label> <input type="radio" name="action" value="SELL" /> <span>ПРОДАТЬ</span> </label></div>
</fieldset>
<button type="submit">Ок</button>
</form>


Нажми кнопку и посмотри на URL открытого окна.
Чтобы :checked работал в IE8 нужно подключить http://selectivizr.com/ или написать простенький костыль (примерно такой как у тебя в коде)

rammstein 15.10.2013 22:20

Спасибо! Я так понимаю, что со ссылками нет варианта?

danik.js 15.10.2013 23:26

Так а чем плох вариант с радиокнопками? По семантике отлично подходит, в отличие от ссылок, ведущих вникуда. Плюс работает даже без javascript'а. Хотя с другой стороны фильтрация работать не будет, и видимо толку от странице при NoScript нет.

rammstein 16.10.2013 00:12

вот именно в фильтрации и речь, а переделывать всё уже нет времени :(
нехороший исполнитель скрылся/потерялся не доделав, потому приходится выполнять мне, а это не моя сфера, хотя руководителя это не волнует... для них мы все компьютерщики!

rammstein 17.10.2013 20:29

Ну хоть кто-нибудь поможет?
я отблагодарю...


Часовой пояс GMT +3, время: 07:44.