Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Заменить radio
 
 автор: Alexx   (27.05.2006 в 18:19)   письмо автору
 
 

Есть список
0 - Главная страница
0 - Новости
0 - Галерея

0 обозначает радио кнопку

Принцип действия такой: выделяю нужную радио кнопку, нажимаю submit a далее на пхп проверяю что было выбрано...

Как можно убрать радио кнопку, чтобы не потерять её св-в. Например когда жмёшь на "Главная страница" надпись должна выделится жирным. А после этого можно отправить данные из формы нажав submit

   
 
 автор: CrazyAngel   (27.05.2006 в 18:52)   письмо автору
 
   для: Alexx   (27.05.2006 в 18:19)
 

Может выподающий список,?

   
 
 автор: targa   (27.05.2006 в 19:18)   письмо автору
 
   для: Alexx   (27.05.2006 в 18:19)
 

Так примерно?


<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Test</title>

<script language="javascript">
<!--
function my_select(toRadio)
{
    for(i=1; i<=3; i++)
    {
        loStyle=document.getElementById('span'+i);
        loStyle.style.fontWeight="normal";
    }

    loStyle=document.getElementById('span'+toRadio.value);
    loStyle.style.fontWeight="bold";
}
//-->
</script>
</head>

<body>

<form method="post" action="" name="frm1">
    <input type="radio" name="rbtRadio" value="1" onclick="my_select(this);"> <span id="span1" style="font-weight: bold;">Главная страница</span><br>
    <input type="radio" name="rbtRadio" value="2" onclick="my_select(this);"> <span id="span2" style="font-weight: normal;">Новости</span><br>
    <input type="radio" name="rbtRadio" value="3" onclick="my_select(this);"> <span id="span3" style="font-weight: normal;">Галерея</span><br>
<br>
    <input type="submit" value="Отправить" name="B1"><input type="reset" value="Сброс" name="B2"></p>
</form>

</body>

</html>

   
 
 автор: Alexx   (27.05.2006 в 20:00)   письмо автору
 
   для: targa   (27.05.2006 в 19:18)
 

Чуть чуть меня не поняли. Нужно чтобы не было radio а работало также. а для эфекта выдеения этот скрипт хорошо подходит

Есть ещё такая идея сделать <input name="id_page" type="hidden" value=""> и при клике на фразе Главная страница или Новости опровлять определённые данные в value id_page. Очень плохо знаю JS

   
 
 автор: RMW   (27.05.2006 в 20:14)   письмо автору
 
   для: Alexx   (27.05.2006 в 20:00)
 

Примерно так:

<html>
<head>
<script>

function f(x)
{
  document.getElementById('_0').style.fontWeight= "normal";
  document.getElementById('_1').style.fontWeight= "normal";
  document.getElementById('_2').style.fontWeight= "normal";

  x.style.fontWeight= "bold";

  document.MyForm.MyRadio.value= x.firstChild.nodeValue;
}

</script>
</head>
<body>

<div id= "_0" onclick= "f(this)">Главная страница </div>
<div id= "_1" onclick= "f(this)">Новости</div>
<div id= "_2" onclick= "f(this)">Галерея</div>

<form action= "#" name= "MyForm">
  <input type= "hidden" name= "MyRadio">
  <input type= "submit">
</form>

</body>
</html>

ЗЫ
Лучше конечно попроще сделать: вместо x.firstChild.nodeValue написать x.id

   
 
 автор: Alexx   (27.05.2006 в 20:26)   письмо автору
 
   для: RMW   (27.05.2006 в 20:14)
 

document.getElementById('_0').style.fontWeight= "normal";
document.getElementById('_1').style.fontWeight= "normal";
document.getElementById('_2').style.fontWeight= "normal";

каждый раз все элементы переводит в нормальный вид. А как упростить допустим если у меня сто полей. Не печатать же мне все ? Через цикл не предлогать.

   
 
 автор: RMW   (27.05.2006 в 21:01)   письмо автору
 
   для: Alexx   (27.05.2006 в 20:26)
 

Можно запомнить в глобальной переменной id выделенного элемента
и приводить к нормальному виду только этот один элемент.
Немного переделаем начало.

<html>
<head>
<script>

var idmemory;

function f(x)
{

  if(idmemory)document.getElementById(idmemory).style.fontWeight= "normal"; 
  idmemory= x.id;
  ...

   
 
 автор: Alexx   (27.05.2006 в 21:03)   письмо автору
 
   для: RMW   (27.05.2006 в 21:01)
 

Большое спасибо! RMW

   
 
 автор: targa   (28.05.2006 в 15:16)   письмо автору
 
   для: Alexx   (27.05.2006 в 20:00)
 

>Чуть чуть меня не поняли. Нужно чтобы не было radio а
>работало также. а для эфекта выдеения этот скрипт хорошо
>подходит

Значит неверно понял :)
Ниже RMW написал как.

>Есть ещё такая идея сделать &lt;input name="id_page"
>type="hidden" value=""> и при клике на фразе Главная
>страница или Новости опровлять определённые данные в value
>id_page. Очень плохо знаю JS
Ну можно и так (могу написать как сделать если нужно). Хотя имхо такая конструкция излишня. Нажми на ссылку птом на кнопку... Мне кажется все таки проще Новости, Галерею и т.д. сделать ссылками.

>каждый раз все элементы переводит в нормальный вид.
>А как упростить допустим если у меня сто полей.
>Не печатать же мне все ? Через цикл не предлогать.
Почему не предлагать? Циклы для этого и предназначены. Я обычно формирую строку с ID элементов (это РНР делает) и передаю ее в функцию JS а там через split разрезаю и получаю массив, в цикле оббежали все нужные элементы и сделали с ними то что нужно.
Но если у вас список ID не меняется, то проще и правда положить форму на странице с невидимым полем, поместить туда через запятую или точку с запятой список ИД и обрабатывать их.

   
 
 автор: Alexx   (28.05.2006 в 16:57)   письмо автору
 
   для: targa   (28.05.2006 в 15:16)
 

>Почему не предлагать? Циклы для этого и предназначены. Я
>обычно формирую строку с ID элементов (это РНР делает) и
>передаю ее в функцию JS а там через split разрезаю и получаю
>массив, в цикле оббежали все нужные элементы и сделали с
>ними то что нужно.

Хорошо как вам такой список ID
1
2
3
125
98
10000
1239080
2308908099890
209380989080989

:)
Сообственно сколько будет цикл считать ? Последний ID.

Тему можно закрывать...

   
 
 автор: targa   (28.05.2006 в 17:26)   письмо автору
 
   для: Alexx   (28.05.2006 в 16:57)
 

Вы не поняли что я вам предлагал.

можете так


... onclick="my_func(this, '1;2;3;125;98;10000;1239080;2308908099890;209380989080989');"...


в JS-коде

function my_func(toObj, tcList)
{
laAll=tcList.split(';');
for (i=0; i < laAll.length; i++)
{
loCurStyle=document.getElementById('id'+laAll[i]).style;
// loCurStyle -  ссылка на style текущего объекта, тут уже можете как хотите манипулировать
}
}


или если у вас список ID не меняется, то тогда на странице так

<form name="frmMyForm">
<input name="txtAllID" type="hidden" value="1;2;3;125;98;10000;1239080;2308908099890;209380989080989">
</form>


в JS коде

tcList=document.forms["frmMyForm"].txtAllID.value;

и дальше как в пред. примере.

Хотя может есть и более изящные решения.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования