14.04.2015, 15:38
|
Аспирант
|
|
Регистрация: 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>
|
|
14.04.2015, 15:59
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,205
|
|
Сообщение от zazula
|
как можно доработать мой скрипт?
|
Это не скрипт, это ПШПшная писанина... Хотя раздел называется "Общие вопросы Javascript".
|
|
14.04.2015, 16:08
|
Профессор
|
|
Регистрация: 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.
Если кнопок много, то лучше функцией.
|
|
15.04.2015, 20:48
|
Аспирант
|
|
Регистрация: 07.05.2014
Сообщений: 40
|
|
laimas, Спасибо, исправила у себя.
Но все же, может кто-нибудь подскажет, как сделать так, чтобы текст появлялся при нажатии на кнопку и исчезал при переходе на другую?
|
|
15.04.2015, 21:18
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,105
|
|
zazula,
покажите нормальный html -- может без скрипта обойдёмся
|
|
16.04.2015, 09:48
|
Аспирант
|
|
Регистрация: 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>
}
|
|
16.04.2015, 09:58
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,105
|
|
zazula,
html это не php
|
|
16.04.2015, 10:59
|
Аспирант
|
|
Регистрация: 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>
|
|
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>
|
|
16.04.2015, 12:13
|
Аспирант
|
|
Регистрация: 07.05.2014
Сообщений: 40
|
|
рони,
Спасибо вам ОГРОМНОЕ!!!! Я кучу форумов и сайтов перерыла в поисках, но ничего подобного не нашла!
|
|
|
|