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

HTML+CSS+JavaScript

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

 

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

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

тема: Предусмотреть проверку сочетаемости пар радиокнопок
 
 автор: Eugene77   (14.04.2009 в 20:00)   письмо автору
 
 

На странице две колонки радиокнопок.
Требуется выбрать одну в первой колонке и одну во второй, затем кликнуть "готово"

Проблема в том, что не все пары кнопок являются допустимыми.
Все кнопки распадаются на 5 групп. Внутри групп допустимо сочетание любых кнопок.
Сочетать кнопки из разных групп - нельзя.

Задача в том, чтобы предупредить ошибочный выбор.

Может быть как-то можно disable по выбору кнопки в одной колонке "лишние" кнопки другой колонки, а если там была уже выбрана одна из кнопок, и она попала в группу недопустимых, то делать какой-то unselect, чтобы ни одна не была выбрана?

Подскажите, пожалуста, как это писать?

  Ответить  
 
 автор: PAT   (14.04.2009 в 20:20)   письмо автору
 
   для: Eugene77   (14.04.2009 в 20:00)
 

Приблизительно так

  Ответить  
 
 автор: Eugene77   (15.04.2009 в 18:28)   письмо автору
 
   для: PAT   (14.04.2009 в 20:20)
 

Интересно!
Но неудобно.

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

Неприемлемо то, что единожды сделав выбор в колонке, исправить его нельзя (надо делать общий сброс)

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

Я, конечно,понимаю, что самому желательно учить JS, но мне пока по вашему примеру трудно понять как он работает и переделать его "под себя".

Но я ещё подумаю.
Ещё я не совсем ясно представляю как правильно связывать лейбелы с радиокнопками.

  Ответить  
 
 автор: Eugene77   (16.04.2009 в 10:45)   письмо автору
 
   для: PAT   (14.04.2009 в 20:20)
 

Сейчас пока страница у меня выглядит примерно так:
      <form method="POST">
    <table width=100%><tr><td><ul>
   <li><b>1</b></li>
       <li>
       <input type='radio' name='new_forum' value=2><label >parables ()</label></li>    <li>
       <input type='radio' name='new_forum' value=6><label >haveing_fun ()</label></li>    <li>
       <input type='radio' name='new_forum' value=7><label >naughting ()</label></li>    <li>
       <input type='radio' name='new_forum' value=8><label >action ()</label></li>    <li>
       <input type='radio' name='new_forum' value=10><label >diverse ()</label></li>    <li>
       <input type='radio' name='new_forum' value=14><label >diverse (all)</label></li>    <li>
       <input type='radio' name='new_forum' value=15><label >my_additions (book)</label></li>    <li>
       <input type='radio' name='new_forum' value=16><label >how_learn (book)</label></li>    <li>
       <input type='radio' name='new_forum' value=20><label >what_i_like (book)</label></li>    <li>
       <input type='radio' name='new_forum' value=21><label>criticism (book)</label></li>    <li>
       <input type='radio' name='new_forum' value=22><label>diverse (book)</label></li>    <li>
       <input type='radio' name='new_forum' value=23><label >models (phone)</label></li>    <li>
       <input type='radio' name='new_forum' value=24><label >icq (phone)</label></li>    <li>
       <input type='radio' name='new_forum' value=25><label >sms (phone)</label></li>    <li>
       <input type='radio' name='new_forum' value=30><label>post (phone)</label></li>    <li>
       <input type='radio' name='new_forum' value=31 checked><label >diverse (phone)</label></li>   
</ul></td>
   <td><ul>
    <li><b>2</b></li>
        <li>
       <input type='radio' name='new_type' value=1><label>what_it_for ()</label></li>    <li>
       <input type='radio' name='new_type' value=2><label>how_make_it ()</label></li>    <li>
       <input type='radio' name='new_type' value=3><label>best_works ()</label></li>    <li>
       <input type='radio' name='new_type' value=5><label>diverse ()</label></li>    <li>
       <input type='radio' name='new_type' value=6><label >reliable_information (all)</label></li>    <li>
       <input type='radio' name='new_type' value=7><label >most_interesting (all)</label></li>    <li>
       <input type='radio' name='new_type' value=8><label>all (all)</label></li>    <li>
       <input type='radio' name='new_type' value=9><label >author_colomn (book)</label></li>    <li>
       <input type='radio' name='new_type' value=10><label >best_works (book)</label></li>    <li>
       <input type='radio' name='new_type' value=11><label>all (book)</label></li>    <li>
       <input type='radio' name='new_type' value=12><label>what_it_for (phone)</label></li>    <li>
       <input type='radio' name='new_type' value=13><label >how_make_it (phone)</label></li>    <li>
       <input type='radio' name='new_type' value=14 checked><label>all (phone)</label></li></ul></td></tr></table>   
<input type="submit" value="READY" >
   </form>
   
</td></tr></table>

То есть кнопки я разнёс в две колонки таблицы.
Идея была в том, что когда курсор находится в левой колонке таблицы, в правой меняются стили радиокнопок так, что видно какие из них можно выбирать, а какие нельзя (делаются disable по мере тог, что кликается в левой колонке табицы) Если курсор переходит в правую колонку, то все кнопки в правой колонке делаются enable, зато в левой по мере кликания в правой часть кнопок изменяет свою доступность и если выбирается недопустимая пара, то отменяется выбор в левой колонке.
Ещё к этому хотелось привязать изменение стилей лэйбелов, но, как видите, сейчас я даже не могу сообразить как лэйбел привязывается к своей кнопке...
Первый раз так сталкиваюсь с радиокнопками серьёзно.

P.S. Слова в скобочках обозначают принадлежность радиокнопок к группам.

  Ответить  
 
 автор: PAT   (16.04.2009 в 13:09)   письмо автору
 
   для: Eugene77   (16.04.2009 в 10:45)
 

По контексту ваши лейблы слишком сложны для восприятия для человека "не в теме".
Потому сделал попроще - см. http://codecenter.awardspace.com/radiosystem.html - там группы определяются так называемым "житейским смыслом".


>Первый раз так сталкиваюсь с радиокнопками серьёзно.
У радиокнопок НИКАКИХ принципиальных отличий от иных тегов, в общем-то, совсем и НЕТ.
Здесь нужно "включить" простую ("программистскую") логику.

Простой перенос моего скрипта на ваш HTML-код вам ничего не даст.
Ибо логика здесь чётко завязана на структуру документа.
Списки и лейблы я не пользовал - вместо этого объединил текст кнопки с самой кнопкой в единый <SPAN> и переносил их тегом <BR>. Соответственно, <SPAN>'ы одной логической группы объединил в один <DIV>...

В общем, поизучайте... принципы и приёмы, использованные в примере, как увидите, - элементарны.
Если "въедете" в них, то легко сделаете под любую СВОЮ структуру документа.

  Ответить  
 
 автор: Eugene77   (16.04.2009 в 21:15)   письмо автору
 
   для: PAT   (16.04.2009 в 13:09)
 

Замечательно вы сделали!
У меня, правда,колонки полностью равноправны по смыслу.
А по интерфейсу, получается, нет, но ничего, главная цель всё равно достигнута, а про мелочи - забудем.

Я тогда переделаю свою страницу под вашу, а функцию оставлю.

У радиокнопок НИКАКИХ принципиальных отличий от иных тегов, в общем-то, совсем и НЕТ
Я не знаю, например, как правильно к радиокнопке прицепить лэйбел... Поэтому структура непонятна, и программировать, соответственно ещё рано. На этом и застрял в начале.
Сейчас это как бы и не важно, но подскажите, хоть для общего образования! (Что там с лэйбелами?)

И ещё... у вас там на странице, вместо русских букв - цифры в исходнике. Можете поправить? А то в глазах рябит!

  Ответить  
Rambler's Top100
вверх

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