Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.04.2015, 15:38
Аспирант
Отправить личное сообщение для zazula Посмотреть профиль Найти все сообщения от zazula
 
Регистрация: 07.05.2014
Сообщений: 40

показать/убрать текст при переходе с кнопки на кнопу radio
Добрый день. Мне необходимо сделать кнопки radio с разными значениями, при нажатии на каждую внизу кнопки должен выводиться текст, а при переходе на другую кнопку он должен исчезать. Но у меня получилось сделать только так, что текст исчезает при нажатии на эту же кнопку второй раз, а при переходе на другую кнопку он не исчезает.
Подскажите, как можно доработать мой скрипт?

for($i=0;$i<$kol_oplata;$i++) {
	$oplata=mysqli_fetch_assoc($sql_oplata);
	if(isset($_POST['oplata'])) {$checked3='checked="checked"';}
else  {$checked3='';}

<p class="op"><label> <input name="oplata"  class="oplata" type="radio" value="<?=$oplata['oplata_id'];?>"  <?=$checked3;?> onclick="var el = document.getElementById('test<?=$oplata['oplata_id'];?>'); el.style.display = (el.style.display == 'block') ? 'none' : 'block';"/> <?=$oplata['oplata_name'];?><br>

     <div id="test<?=$oplata['oplata_id'];?>" style="display:none"><?=$oplata['oplata_info'];?></div></label></p><?php }?>
  <label> </p>
Ответить с цитированием
  #2 (permalink)  
Старый 14.04.2015, 15:59
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от zazula
как можно доработать мой скрипт?
Это не скрипт, это ПШПшная писанина... Хотя раздел называется "Общие вопросы Javascript".
Ответить с цитированием
  #3 (permalink)  
Старый 14.04.2015, 16:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

for($i=0;$i<$kol_oplata;$i++) {

while($row = mysqli_fetch_assoc($sql_oplata)) {

if(isset($_POST['oplata'])) {$checked3='checked="checked"';}
else {$checked3='';}
- таким образом истина будет для всех кнопок

$check = $_POST['oplata'] && $_POST['oplata']==$r['oplata_id'] ? 'checked' : null;
?>

А тут в выводе html подставлять $check.

Если кнопок много, то лучше функцией.
Ответить с цитированием
  #4 (permalink)  
Старый 15.04.2015, 20:48
Аспирант
Отправить личное сообщение для zazula Посмотреть профиль Найти все сообщения от zazula
 
Регистрация: 07.05.2014
Сообщений: 40

laimas, Спасибо, исправила у себя.
Но все же, может кто-нибудь подскажет, как сделать так, чтобы текст появлялся при нажатии на кнопку и исчезал при переходе на другую?
Ответить с цитированием
  #5 (permalink)  
Старый 15.04.2015, 21:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

zazula,
покажите нормальный html -- может без скрипта обойдёмся
Ответить с цитированием
  #6 (permalink)  
Старый 16.04.2015, 09:48
Аспирант
Отправить личное сообщение для zazula Посмотреть профиль Найти все сообщения от zazula
 
Регистрация: 07.05.2014
Сообщений: 40

while($oplata = mysqli_fetch_assoc($sql_oplata)) {
	$check = $_POST['oplata'] && $_POST['oplata']==$oplata['oplata_id'] ? 'checked' : null;

<p class="op"><label> <input name="oplata"  class="oplata" type="radio" value="<?=$oplata['oplata_id'];?>"  <?=$check;?> onclick="var el = document.getElementById('test<?=$oplata['oplata_id'];?>'); el.style.display = (el.style.display == 'block') ? 'none' : 'block';"/> <?=$oplata['oplata_name'];?><br>
     <div id="test<?=$oplata['oplata_id'];?>" style="display:none"><?=$oplata['oplata_info'];?></div></label></p>
}
Ответить с цитированием
  #7 (permalink)  
Старый 16.04.2015, 09:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

zazula,
html это не php
Ответить с цитированием
  #8 (permalink)  
Старый 16.04.2015, 10:59
Аспирант
Отправить личное сообщение для zazula Посмотреть профиль Найти все сообщения от zazula
 
Регистрация: 07.05.2014
Сообщений: 40

а как тогда? у меня все вместе.
показать результат php?
<p class="op"><label> <input name="oplata"  class="oplata" type="radio" value="1"   onclick="var el = document.getElementById('test1'); el.style.display = (el.style.display == 'block') ? 'none' : 'block';"/> Наличными при получении заказа</label></p>
<div id="test1" style="display:none">Оплата производится наличными при получении товара, после проверки</div> 

<p class="op"><label> <input name="oplata"  class="oplata" type="radio" value="2"   onclick="var el = document.getElementById('test2'); el.style.display = (el.style.display == 'block') ? 'none' : 'block';"/> Банковской картой при получении заказа</label></p>
<div id="test2" style="display:none">Оплата производится банковской картой через мобильный терминал при получении товара, после проверки</div> 

<p class="op"><label> <input name="oplata"  class="oplata" type="radio" value="3"   onclick="var el = document.getElementById('test3'); el.style.display = (el.style.display == 'block') ? 'none' : 'block';"/> Пластиковой картой на сайте</label></p>
<div id="test3" style="display:none">Вы будете перенаправлены на сервис оплаты. Операции будут проходить в защищенном режиме.</div> 

<p class="op"><label> <input name="oplata"  class="oplata" type="radio" value="4"   onclick="var el = document.getElementById('test4'); el.style.display = (el.style.display == 'block') ? 'none' : 'block';"/> Безналичный расчет</label></p>
<div id="test4" style="display:none">Мы согласуем дату доставки с Вами после оформления заказа. Укажите пожалуйста реквизиты компании, мы подготовим счет и пришлем его Вам по электронной почте. Необходимы полные реквизиты: наименование, ИНН, КПП, адреса, банковские реквизиты. Без них мы не сможем подготовить счет.</div>

<p class="op"><label> <input name="oplata"  class="oplata" type="radio" value="5"   onclick="var el = document.getElementById('test5'); el.style.display = (el.style.display == 'block') ? 'none' : 'block';"/> Кредит</label></p>
<div id="test5" style="display:none">Для оформления кредита на вашу покупку, заполните анкету банка партнера. С вами свяжется работник банка для уточнения деталей и оформления документов.</div>
Ответить с цитированием
  #9 (permalink)  
Старый 16.04.2015, 11:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Открывашка 212 input type=radio
zazula,
всё это можно сделать без js немного поменяв структуру html
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script>
      window.onload = function() {
          var divs = document.querySelectorAll('.op + div'),
              inp = document.querySelectorAll('[name="oplata"]'),
              fn = function(input) {
                  input.onclick = function() {
                      Array.prototype.forEach.call(divs, function(div, i) {
                          div.style.display = inp[i].checked ? "block" : "none"
                      })
                  }
              };
          Array.prototype.forEach.call(inp, fn);
      }
  </script>
</head>

<body>

<p class="op"><label><input name="oplata"  class="oplata" type="radio" value="1"   /> Наличными при получении заказа</label></p>
<div  style="display:none">Оплата производится наличными при получении товара, после проверки</div>

<p class="op"><label> <input name="oplata"  class="oplata" type="radio" value="2"   /> Банковской картой при получении заказа</label></p>
<div  style="display:none">Оплата производится банковской картой через мобильный терминал при получении товара, после проверки</div>

<p class="op"><label> <input name="oplata"  class="oplata" type="radio" value="3"   /> Пластиковой картой на сайте</label></p>
<div  style="display:none">Вы будете перенаправлены на сервис оплаты. Операции будут проходить в защищенном режиме.</div>

<p class="op"><label> <input name="oplata"  class="oplata" type="radio" value="4"   /> Безналичный расчет</label></p>
<div  style="display:none">Мы согласуем дату доставки с Вами после оформления заказа. Укажите пожалуйста реквизиты компании, мы подготовим счет и пришлем его Вам по электронной почте. Необходимы полные реквизиты: наименование, ИНН, КПП, адреса, банковские реквизиты. Без них мы не сможем подготовить счет.</div>

<p class="op"><label> <input name="oplata"  class="oplata" type="radio" value="5"   /> Кредит</label></p>
<div  style="display:none">Для оформления кредита на вашу покупку, заполните анкету банка партнера. С вами свяжется работник банка для уточнения деталей и оформления документов.</div>

</body>

</html>
Ответить с цитированием
  #10 (permalink)  
Старый 16.04.2015, 12:13
Аспирант
Отправить личное сообщение для zazula Посмотреть профиль Найти все сообщения от zazula
 
Регистрация: 07.05.2014
Сообщений: 40

рони,
Спасибо вам ОГРОМНОЕ!!!! Я кучу форумов и сайтов перерыла в поисках, но ничего подобного не нашла!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Меняющейся текст при выборе select ainur777 Общие вопросы Javascript 0 24.10.2014 22:01
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
прогкрутка к якорям cOAPerator Общие вопросы Javascript 20 27.08.2013 03:30
Вопрос по относительному позиционированию DIV XPOMOB (X)HTML/CSS 11 15.07.2009 17:02
выполнение ф-ии при изменении состояния radio MaxB Events/DOM/Window 5 24.06.2009 14:24