Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Выпадающее поле при выборе пункта радио кнопки (https://javascript.ru/forum/dom-window/13921-vypadayushhee-pole-pri-vybore-punkta-radio-knopki.html)

Андрей28 21.12.2010 15:29

Цитата:

Сообщение от Vulkan (Сообщение 84663)
что именно не получается, какая ошибка? Выложите код сюда

Просто всегда сам привык разбираться.
Но в PHP не силён. Только учусь.
Понимаю что вещи простые для знающих..

Делаю интернет-магазин... http://motoproblem.net/
И вот если купить товар и оформлять, то во 2 шаге, когда человек выбирает способ доставки - у меня стоит 2 варианта - самовывоз и доставка по киеву.
И если человек выбирает доставка по киеву, то нужно заполнить поле адрес.
Сейчас оно у меня постоянно активно, а мне хотелось бы чтобы когда человек выбирает самовывоз, то поле адрес не было видно, а когда выбирает доставка по киеву, то оно появлялось.

Просто тут ещё такой момент, что если сделать так как вы советовали в первый раз, то поле появляется при нажатии на второй пункт но не пропадает если опять вернуться на первый, и при этом если перейти на следующий шаг и вернуться обратно, то этого поля тоже не видно.

Насколько понятно объяснил - сложно сказать:)
Но если сделать тестовую покупку, то там сразу станет ясно.

Спасибо что пытаетесь помочь:thanks:

ksa 21.12.2010 15:32

Цитата:

Сообщение от Андрей28
Но в PHP не силён

Таки мой пример на JS онли... :)

Vulkan 21.12.2010 15:48

ну короче у div в котором адрес ставь
style="padding-left:20px; display:none;" и id="address"

у пункта самовывоз ставь
onclick="document.getElementById('address').style.display='none';"

у пункта доставка по киеву ставь
onclick="document.getElementById('address').style.display='block';"

Проверял на твоём сайте, всё работает если так сделать.
На счёт
Цитата:

при этом если перейти на следующий шаг и вернуться обратно, то этого поля тоже не видно
Это уже можно просто перещёлкнуть поле, и этот нюанс уже сам решай или это уже будет не бесплатно

Андрей28 21.12.2010 16:17

Цитата:

Сообщение от Vulkan (Сообщение 84670)
ну короче у div в котором адрес ставь
style="padding-left:20px; display:none;" и id="address"

у пункта самовывоз ставь
onclick="document.getElementById('address').style.display='none';"

у пункта доставка по киеву ставь
onclick="document.getElementById('address').style.display='block';"

Проверял на твоём сайте, всё работает если так сделать.
На счёт
Это уже можно просто перещёлкнуть поле, и этот нюанс уже сам решай или это уже будет не бесплатно

Здесь я понимаю уже.
Вот только у меня вот так код записан (с учётом что выставлять варианты доставок нужно в админке сайта)
<tr>
            <td width="1"><label for="<?php echo $quote['id']; ?>">
                <?php if ($quote['id'] == $shipping || !$shipping) { ?>
				<?php $shipping = $quote['id']; ?>
                <input type="radio" name="shipping_method" value="<?php echo $quote['id']; ?>" id="<?php echo $quote['id']; ?>" checked="checked" style="margin: 0px;" />
                <?php } else { ?>
                <input type="radio" name="shipping_method" value="<?php echo $quote['id']; ?>" id="<?php echo $quote['id']; ?>" style="margin: 0px;" />
                <?php } ?>
              </label></td>
            <td width="534"><label for="<?php echo $quote['id']; ?>" style="cursor: pointer;"><?php echo $quote['title']; ?></label></td>
            <td width="100" align="right"><label for="<?php echo $quote['id']; ?>" style="cursor: pointer;"><?php echo $quote['text']; ?></label></td>
          </tr>


Как мне обозначить в таком коде где будет самовывоз а где доставка по киеву?

Vulkan 21.12.2010 16:24

<tr>
            <td width="1"><label for="<?php echo $quote['id']; ?>">
                <?php if ($quote['id'] == $shipping || !$shipping) { ?>
				<?php $shipping = $quote['id']; ?>
                <input type="radio" name="shipping_method" value="<?php echo $quote['id']; ?>" id="<?php echo $quote['id']; ?>" checked="checked" onclick="document.getElementById('address').style.display='none';" style="margin: 0px;" />
                <?php } else { ?>
                <input type="radio" name="shipping_method" value="<?php echo $quote['id']; ?>" id="<?php echo $quote['id']; ?>" onclick="document.getElementById('address').style.display='block';"  style="margin: 0px;" />
                <?php } ?>
              </label></td>
            <td width="534"><label for="<?php echo $quote['id']; ?>" style="cursor: pointer;"><?php echo $quote['title']; ?></label></td>
            <td width="100" align="right"><label for="<?php echo $quote['id']; ?>" style="cursor: pointer;"><?php echo $quote['text']; ?></label></td>
          </tr>

Вот у которого checked=checked, тот и самовывоз, тут я уже онклик проставил как надо, на поле адреса незабудь стиль и ид поставить как я выше прописал.

Андрей28 21.12.2010 16:38

Цитата:

Сообщение от Vulkan (Сообщение 84681)
<tr>
            <td width="1"><label for="<?php echo $quote['id']; ?>">
                <?php if ($quote['id'] == $shipping || !$shipping) { ?>
				<?php $shipping = $quote['id']; ?>
                <input type="radio" name="shipping_method" value="<?php echo $quote['id']; ?>" id="<?php echo $quote['id']; ?>" checked="checked" onclick="document.getElementById('address').style.display='none';" style="margin: 0px;" />
                <?php } else { ?>
                <input type="radio" name="shipping_method" value="<?php echo $quote['id']; ?>" id="<?php echo $quote['id']; ?>" onclick="document.getElementById('address').style.display='block';"  style="margin: 0px;" />
                <?php } ?>
              </label></td>
            <td width="534"><label for="<?php echo $quote['id']; ?>" style="cursor: pointer;"><?php echo $quote['title']; ?></label></td>
            <td width="100" align="right"><label for="<?php echo $quote['id']; ?>" style="cursor: pointer;"><?php echo $quote['text']; ?></label></td>
          </tr>

Вот у которого checked=checked, тот и самовывоз, тут я уже онклик проставил как надо, на поле адреса незабудь стиль и ид поставить как я выше прописал.

Спасибо огромное за помощь. Работает как хотел.
Только как и писал если пойти на след.шаг и вернуться обратно, то пункт то уже стоит тот, что мы выбрали - доставка по киеву. И чтобы отредактировать поле адрес нам нужно нажать уже на самовывоз.. не логично выходит.
Сколько мне будет стоить решение этого вопроса?:)

Vulkan 21.12.2010 16:43

Андрей28, обращайтесь в раздел работа на этом сайте, там найдётся тот кто сделает это.

Андрей28 21.12.2010 16:47

Цитата:

Сообщение от Vulkan (Сообщение 84685)
Андрей28, обращайтесь в раздел работа на этом сайте, там найдётся тот кто сделает это.

Ещё раз огромная благодарность за помощь!!!
Хороших праздников:)


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