С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/22: Рейтинг темы: голосов - 22, средняя оценка - 4.73
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 234

Заполнение текстовой формы при помощи чекбоксов

03.05.2012, 13:22. Показов 4801. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста с js, а то я не шарю в нём, а время на изучения нет.
Нужна программа которая будет в текстовой форме отображать стоит ли галочка в чек боксе.
Как это выглядит, всё просто пользователь ставит галочку и в текстовой форме появляется символ соответствующий данному переключателю, их на странице несколько. При чём сам чек бокс не содержит в значении тот символ который будет отображаться в форме, это нужно задать вручную в программе мне.
Мне шаблон подкинули типа: "если галочка стоит в чек боксе с названием "таким-то", то в форме такой-то добавить такой-то символ. Кстати чек боксы выводятся подряд и хотелось бы чтобы в форме сохранялся порядок их расположения, это наверное сделать сложнее.
Вот форме с таблицей вместе:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 <form method="post" name="form">
 
<table id="rab_table" cellpadding="2" cellspacing="2">
<tr>
<td>Название</td>
<td>Супер админ.</td>
<td>Настройки</td>
<td>Обслуживание</td>
<td>Функции</td>
<td>Статистика</td>
<td>Шаблон</td>
<td>Вкл./откл. стайт</td>
<td>Помощь</td>
<td>Символьный код</td>
<td></td></tr>
<tr><td><input name="opt[name]" type="text" value="" size="20" maxlength="40" /></td>
<td><input name="opt[super]" type="checkbox" value="1" /></td>
<td><input name="opt[config]" type="checkbox" value="1" /></td>
<td><input name="opt[service]" type="checkbox" value="1" /></td>
<td><input name="opt[function]" type="checkbox" value="1" /></td>
<td><input name="opt[statistics]" type="checkbox" value="1" /></td>
<td><input name="opt[templates]" type="checkbox" value="1" /></td>
<td><input name="opt[on_site]" type="checkbox" value="1" /></td>
<td><input name="opt[help]" type="checkbox" value="1" /></td>
<td><input name="opt[access]" type="text" value="" size="15" maxlength="40" /></td>
<td><input name="opt[new_group]" type="submit" value="Добавить" /></td></tr></table></form>
Вот в форме с название "opt[access]" и должны появляться символы, например чек боксу "opt[super]" будет соответствовать символ "а", если пользователь поставит галочку то в форме должен появиться символ "а". И совсем хорошо будет если вне зависимости от последовательности расстановки галочек сохранялась последовательность символов в текстовой форме. Наверное нужно просто как-то каждый раз все галочки проверять, а не просто добавляться новый символ в форму. В общем подскажите пожалуйста, а то я не знаю как это сделать.
Заранее благодарен.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.05.2012, 13:22
Ответы с готовыми решениями:

Заполнение текстовой формы на сайте
Здравствуйте. Имеется html - страничка : &lt;html&gt; &lt;body&gt; &lt;p&gt;&lt;input maxlength=&quot;25&quot; size=&quot;40&quot;&gt;&lt;/p&gt; &lt;/body&gt; &lt;/html&gt; ...

Перемещение формы при помощи мыши
Имеется форма с BorderStyle:bsNone Как можно передвигать эту форму мышкой? И можно-ли назначить такую функцию отдельной части формы,...

Нуждаюсь в помощи при обработке формы
Форма. Обработчик работает криво. Помогите доделать. &lt;html&gt; &lt;head&gt; &lt;title&gt;PHP&lt;/title&gt; &lt;meta...

30
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
03.05.2012, 22:11
Всего чекбоксов в строке у вас 8 штук.
Отсюда варианты:

ПЕРВЫЙ: На выходе всегда строка из 8 символов (типа двоичного кода), где 1 соответствует наличию галочки, а 0 - её отсутствию. Примеры:
10000001 -- отмечены первый и последний чекбоксы
00000011 -- отмечены два последних чекбокса

ВТОРОЙ: На выходе только столько символов, сколько отмеченных чекбоксов. Тогда за каждым из восьми чебоксов должен быть закреплён свой символ. Например, чекбоксы соответствуют латинскому алфавиту (от a до h). Тогда примеры:
ah -- отмечены первый и последний чекбоксы
jh -- отмечены два последних чекбокса

Какой вариант вам нужен?
-----

Из каких-таких соображений в именах всех полей (чекбоксов и текстовых) вами написана некая фигня с opt и квадратными скобками?
Мир перевернётся, если имена будут без квадратных скобок и без opt, а останется только то, что сейчас есть внутри квадратных скобок?
0
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 234
03.05.2012, 22:54  [ТС]
Здравствуйте! Спасибо что откликнулись на мою просьбу.
По поводу вашего вопроса я бы хотел с вами посоветоваться. Я в php делаю прогу и у меня сегодня вот что вышло, эти 8 чекбоксов я вынес в отдельный файл т.к. они часто повторяются в программе и проще в цикле их вывести чем все прописывать по сто раз. Храню я их следующим образом:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
$all_access[0]['name'] = 'Супер админ.';
$all_access[0]['symbol'] = 'a';
$all_access[1]['name'] = 'Настройки';
$all_access[1]['symbol'] = 'c';
$all_access[2]['name'] = 'Обслуживание';
$all_access[2]['symbol'] = 's';
$all_access[3]['name'] = 'Функции';
$all_access[3]['symbol'] = 'f';
$all_access[4]['name'] = 'Статистика';
$all_access[4]['symbol'] = 'i';
$all_access[5]['name'] = 'Шаблон';
$all_access[5]['symbol'] = 't';
$all_access[6]['name'] = 'Обслуживание';
$all_access[6]['symbol'] = 's';
$all_access[7]['name'] = 'Вкл./откл. стайт';
$all_access[7]['symbol'] = 'o';
$all_access[8]['name'] = 'Помощь';
$all_access[8]['symbol'] = 'h';
?>
затем вывожу таблицу при помощи foreach.
На выходе у меня получаются чибоксы вида opt[key] = 1
key это ключи из массива all_access
А когда уже отправляю на сервер я их в цикле перебираю и какие пришли их ключи подставляю в массив all_access['$key']['symbol'].
Поэтому получается что они содержат сами символы, а содержат только ключ. Вот как быть?
В php я смогу вывести javasript код который вставит в него нужные соответствия символам, но нужно учитывать формат хранения их в файле.
А может это сложно и лучше не замарачиваться?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
04.05.2012, 00:08
И почему у вас 2 (два) "обслуживания"?
И как вы их одно от другого отличаете?
-----

А вообще интересно - спрашиваешь "про Фому", а ответ получаешь "про дядьку в Киеве".
Вы по-русски на поставленные мною конкретные вопросы ответить можете?
Или так и будете ходить "вокруг да около"?

1. В каком виде должен ВИЗУАЛЬНО отразиться в <INPUT>'e сделанный клиентом выбор чекбоксов в строке? В виде строки из 8-ми позиций двоичного кода? Или в виде строки, содержащей такое количество разных символов, сколько чекбоксов было отмечено?

2. "Нахрена попу гармонь" или зачем В ПРИНЦИПЕ в именах чекбоксов прописана мутотень с квадратными скобками? Без квадратных скобок вам жизнь не в радость?
1
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 234
04.05.2012, 00:13  [ТС]
Вариант два я думаю подойдёт.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
04.05.2012, 00:17
Вот интересно, это мне надо или вам?
Почему я должен ответ на КАЖДЫЙ свой вопрос вытягивать из вас клещами?

Посмотрите - сколько мною было задано вопросов?
А сколько раз вы ответили?
-----

В общем, когда научитесь вести диалог - то есть отвечать ТОЧНО и НА ВСЕ поставленные перед вами вопросы, тогда и приходите.
1
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 234
04.05.2012, 00:45  [ТС]
Ой извините пожалуйста я просто торможу. Устал уже.
По поводу двух обслуживаний это опечатка
Могу отвечать по русски на ваши вопросы
Перестану ходить вокруг да около
1) Нужно чтобы в текстовом поле появились соответствующие символы (буквы алфавита), при это у самих чибоксов в валуе не они написаны они хранятся в php файле который я показал. Должно в форме появиться например "coh" если галочки отметить "Настройки", "Помощь", "Вкл. откл. сайт".
Причём желательно чтобы новый отмечаемый символ появлялся не в конце строки, а по очереди т.е. даже если пользователь в обратном порядке будет ставить эти галочки всё равно должно появиться "coh", a He "hoc".
2)Мутотень прописана для того чтобы в php данные пришли массивом
PHP
1
$POST['opt']['0'] = 1
Я их потом в цикле перебираю.
Ещё раз извините просто устал, если что не ясно, спрашивайте на этот раз я постараюсь внимательнее отвечать.

Добавлено через 14 минут
Вроде ни чего не упустил, спросите если что-то ещё пропустил.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
04.05.2012, 00:46
1. Так откуда браузер должен узнать - какая буква соответствует какому чекбоксу, если прописывать в value чекбоксов вы это не собираетесь? А где тогда прописывать будете? Откуда браузер про эти символы узнает?

2. Насчёт opt [] ничего не понял.
На сервер при любом методе (что GET, что POST) отправляются пары имя=значение (по-аглицки name=value). Если ваши чекбоксы НИЧЕГО в value не содержат (или содержат неизменяемую информацию value="1"), то зачем им вообще имена? Зачем ПУСТУЮ информацию отсылать на сервер?
-----

По моему скромному разумению вам для отправки на сервер нужны из каждой строки только "Название" (в вашем коде opt[name]) и соответствующую ему строку символов, которую сформирует Javascript (в вашем коде opt[access]).
Все прочие элементы формы нужны только и исключительно для формирования значения этого самого поля name="opt[access]". На сервер их (прочих элементов формы) значения посылать не нужно - ибо НЕЗАЧЕМ. Бессмысленно это.
Соответственно и имена этим чекбоксам ВООБЩЕ НЕ НУЖНЫ.
Таким образом, с именами внутри формы в каждой строке останутся всего два текстовых поля - "Название" и "Символьный код" (кнопке "Добавить" имя также не нужно - зачем вам в программе PHP получать opt[new_group]=Добавить?)
Соответственно, двум разных полям совершенно не нужно имя в виде какого-то массива с квадратными скобками.
Вполне можно ограничиться name="myName" и name="myCode".

Что-то не так?
0
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 234
04.05.2012, 01:21  [ТС]
И так значит дело вот какое.
Чек боксы не просто формируют значение текстовой формы, в случае если отключен javascript и придёт пустая строка из текстовой формы, программа возьмёт массив $POST['opt'] и в цикле его переберёт, т.к. придут у нас только чибоксы с единицами, т.е. с галочками, то придут только те что нужны. Потом я беру массив с права и подставляю туда
PHP
1
$all_access[$key]['sumbol']
Где кей это ключ принятый из $post['opt']['key'].'
Я так понимаю будет проще засунуть в валуе к чибоксам соответсвующие символы и не мучаться, то что пользователь может свои бяки подсовывать в валуе к ним я потом отловлю перед записью в бд. Но обязательно нужно чтобы были имена opt[key]
Так гораздо проще работать в дальнейшем.
opt[new_group] нужна чтобы сделать такую вещь на странице
PHP
1
if(isset($POST['opt']['new_group']))
т.е. условие чтобы по нажатию именно этой кнопки начиналась обработка именно этих данных, это тоже менять нельзя.

Добавлено через 34 секунды
Ниужели имена opt[key], так сильно осложняют javascript программу?

Добавлено через 1 минуту
Насчёт методов метода гет незнаю но когда пост благодаря квадратным скобкам можно задавать массив, Это 100%, иначе моя программа бы не работала.

Добавлено через 5 минут
Кстати получается что эллементы не только нужны для формирования opt[access], а они так же могут обрабатываться сервером, в случае если javascript был отключён.
Давайте будем отталкивать от что имеем таблицу:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 <form method="post" name="form">
<table id="rab_table" cellpadding="2" cellspacing="2">
<tr><td>Название</td><td>Супер админ.</td><td>Настройки</td><td>Обслуживание</td><td>Функции</td>
<td>Статистика</td>
<td>Шаблон</td>
<td>Вкл./откл. сайт</td><td>Помощь</td>
<td id="rabtblname">Или введите </td>
<td>Символьный код</td>
<td></td></tr>
<tr>
<td>
<input name="opt[name]" type="text"  size="20" maxlength="40" /></td>
<td><input name="opt[0]" type="checkbox" value="a" /></td>
<td><input name="opt[1]" type="checkbox" value="c" /></td>
<td><input name="opt[2]" type="checkbox" value="s" /></td>
<td><input name="opt[3]" type="checkbox" value="f" /></td>
<td><input name="opt[4]" type="checkbox" value="i" /></td>
<td><input name="opt[5]" type="checkbox" value="t" /></td>
<td><input name="opt[6]" type="checkbox" value="o" /></td>
<td><input name="opt[7]" type="checkbox" value="h" /></td>
<td></td>
<td><input name="opt[access]" type="text"  size="15" maxlength="40" /></td>
<td><input name="opt[new_group]" type="submit" value="Добавить" /></td>
</tr></table></form>
Добавлено через 53 секунды
Возможно я напутал, обратите внимание что в opt находятся ключи, а там я написал имена.

Добавлено через 1 минуту
Теперь всё становится на свои места. Просто нужна программа которая будет писать в текстовой бокс значение чек бокса если поставить галочку и удалять его если галочка будет убрана.
Вот как бы сделать чтобы ещё последовательность оставлялась неизменной.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
04.05.2012, 01:39
Сразу после закрывающего тега </form> добавьте скриптовой блок:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
...
</form>
<script>
function myFunc ()
{
for (var rez = '', ch = document.getElementById ('rab_table').getElementsByTagName ('INPUT'), j = 0, lj = ch.length; j < lj; j++)
if (ch [j].type == 'checkbox' && ch [j].checked) rez += ch [j].value;
document.getElementsByName ('opt[access]') [0].value = rez;
}
 
for (var ch = document.getElementById ('rab_table').getElementsByTagName ('INPUT'), j = 0, lj = ch.length; j < lj; j++)
if (ch [j].type == 'checkbox') ch [j].onclick = myFunc;
</script>
1
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 234
04.05.2012, 02:06  [ТС]
Ой огромнейшее вам спасибо!

Добавлено через 11 минут
Только есть один косяк =)
У меня есть ещё одна табличка так в ней несколько строк есть с такими чекбоксами
и идут они так opt[string][key],
И форма opt[access] выглядет уже opt[string][access],
где string это строка в таблице, a key это ключ из файла.
Может можно и для этого как-то сделать? Отличие в том что теперь нужно сделать так чтобы когда ставишь галочку в чек боксе в одной строке, то и текст появлялся в ней же. Т.е. у них string одинаковые.
Это можно и в отдельную программу засунуть я её сам выведу где надо.

Добавлено через 5 минут
Ни хочу показаться наглым, но можно ли сделать так чтобы если стоит первая галочка т.е. со значением 'a', то тогда все остальные галочки убирались ну и в форме тоже символы естественно?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
04.05.2012, 02:20
Начну с конца:
1. Если юзер отметит первый чекбокс, то что должно произойти:
а) с прочими чекбоксами: должны сняться отметки с них? должны сделаться вовсе недоступными?
б) с символьным кодом: в поле должен быть только символ a?

2. А что, если юзер сначала поставит галочку на первом чекбоксе, а затем, подумав, снимет её? Что в этом случае должно произойти:
а) с прочими чекбоксами?
б) с символьным кодом? (Он должен стать пустым)?
-----

Плохо понял по поводу второй (третьей и т.д.) табличек.
Во второй (третьей и прочих) табличках будет такая же мутотень с чекбоксами, которые формируют символьный код? И во второй (третьей и т.д. табличках) могут быть поля с теми же в точности именами, что и в первой табличке? И вы хотите, чтобы и во второй (третьей...) табличке работал аналогичный скрипт?
1
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 234
04.05.2012, 02:46  [ТС]
Отвечаю по очереди
1.Должны и галочки сняться и в форме только "а" остаться, да и чекбоксы лучше сделать недоступными.
2.Если снимет галочку то все чекбоксы сделать опять доступными, а форму оставить пустую, теперь пользователь может выбрать другой чек бокс, как бы так.
Ещё раз по поводу второй табличке.
Она выводится на другой странице и поэтому для неё можно использовать другой скрипт.
На этот раз это одна табличка в которой несколько строк, у каждой строки есть нормер, и имена форм выводятся сооствуя этим номерам т.е. в первой строке все чек боксы будут иметь вид opt[0][$key], a текстовая форма opt[0][access], на следующей строке opt[1][$key] и opt[1][access] соответственно и т.д. Смысле что теперь не просто нужно в форму записать значение, но сделать так чтобы поставив галочку в одном чек боксе, значение поменялось именно в этой строке.
Короче сопоставление строк, т.к. их может n'ное колличество.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
04.05.2012, 09:32
Поскольку (1) возможно несколько строк в таблице и поскольку (2) возможны разные сложные имена для полей ввода разных форм с учетом (3) приоритетного первого чекбокса в строке
ориентироваться будем на следующее ОБЯЗАТЕЛЬНОЕ в каждой форме и в КАЖДОЙ таблице:

а) в каждой форме будет именно таблица (тег <TABLE>);
б) каждая строка всех таблиц формируются по единому шаблону:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<tr>
<td><input name="что-угодно"></td>
<td><input type="checkboks" name="что-угодно" value="a"></td><!-- приоритетный -->
<td><input type="checkboks" name="что-угодно" value="c"></td>
<td><input type="checkboks" name="что-угодно" value="s"></td>
<td><input type="checkboks" name="что-угодно" value="f"></td>
<td><input type="checkboks" name="что-угодно" value="i"></td>
<td><input type="checkboks" name="что-угодно" value="t"></td>
<td><input type="checkboks" name="что-угодно" value="o"></td>
<td><input type="checkboks" name="что-угодно" value="h"></td>
<td><input name="что-угодно, но чтобы содержалась подстрока [access]" value="a"></td>
<td><input type="submit" name="что-угодно"></td><!-- этой ячейки может и не быть -->
</tr>
в) строк в таблице может быть от 1 до бесконечности;
г) форма с такой таблицей может быть только одна на странице;
д) ВСЕ такие таблицы на ВСЕХ страницах будут иметь ОДИН и ТОТ ЖЕ id="rab_table"

Тогда можно сделать один скриптовой файл, который можно будет подключать ко всякой странице в заголовке (между <head> и </head>) тегом <script src="путь к файлу file.js"></script>

Текст этого файла (сохраните AS IS под именем file.js и положите куда-нить на сервер)
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function myFunc (ev)
{
var e = window.event || ev, obj = e.target || e.srcElement;
while (obj.tagName != 'TR') obj = obj.parentNode;
 
for (var rez = '', ch = obj.getElementsByTagName ('INPUT'), j = 0, lj = ch.length; j < lj; j++)
if (ch [j].type == 'checkbox')
   {
   if (ch [j].value == 'a' && ch [j].checked) rez = 'a';
   else 
      {
      if (rez == 'a') {ch [j].checked = 0; ch [j].disabled = 1}
      else {ch [j].disabled = 0; if (ch [j].checked) rez += ch [j].value}
      }
   }
else if (ch [j].name.indexOf ('[access]') != -1) {ch [j].value = rez; return}
}
 
onload = function ()
{
for (var ch = document.getElementById ('rab_table').getElementsByTagName ('INPUT'), j = 0, lj = ch.length; j < lj; j++)
if (ch [j].type == 'checkbox') ch [j].onclick = myFunc; 
}
1
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 234
04.05.2012, 11:33  [ТС]
Всё превосходно работает! Вот это то что нужно! Огромное вам спасибо!

Добавлено через 11 минут
Раз вы так хорошо знаете js, может ещё подскажете по другой теме. В общем дело такое у меня на сайте было вертикальное css меню, я его взял с интернета. Но с ним есть проблемы то что оно не работает в ie. Для этого написан js fix.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
navHover = function() {
    var lis = document.getElementById("navmenu-v").getElementsByTagName("LI");
    for (var i=0; i<lis.length; i++) {
        lis[i].onmouseover=function() {
            this.className+=" iehover";
        }
        lis[i].onmouseout=function() {
            this.className=this.className.replace(new RegExp(" iehover\\b"), "");
        }
    }
}
if (window.attachEvent) window.attachEvent("onload", navHover);
Так вот тут начинается куча бед в ie
1) Появляется ошибка, в ie тестере пишет просто "An error has occured in this page."
Ошибка только в ie!
2)Меню представляет собой список
HTML5
1
<ul  id='navmenu-v'><li></li>Первый уровень<ul><li>Второй уровень</li></ul></li><li>Первый уровень</li></ul>
Но у меня на сайте несколько таких <ul id='navmenu-v'>, т.е. несколько менюшек, а в ie работает только одна! Я думаю это фикс так не продуманно написан.
Как думаете может этот вопрос вынести в отдельную тему?
0
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 234
09.05.2012, 15:56  [ТС]
Здравствуйте, сейчас продолжаю делать программу и столкнулся с проблемами.
1) Можно ли сделать программу которую вы для меня написали так, чтобы галочки не только ставились, но и убирались в случае если пользователь сотрёт символ из формы, соответствующий значению чек бокса. Т.е. принцип тот же, только ещё чтобы в обратном порядке работало.
2) В одной из таблиц мне необходимо ещё добавить select с группами. Хотелось бы сделать так чтобы в случае когда форма access была пустой и пользователь выберет группу то в форме access появились соответствующие символы.(Ну и желательно чтобы чек боксы тоже расставились)
И тут одна проблема выходит. В общем в этом селекте в option идут названия групп, я могу конечно записать в валуе комбинацию симолов, но в это случае передо мной встаёт проблема, как записать в бд название группы, ведь теперь в валуе его не будет. Может быть можно было бы в валуе хранить всё-таки название группы, а где-нибудь в скрытых полях например соответствия комбинации символов и названий групп для java scripta, а может хранить в формате Name_group:symbol. Например "Главные администраторы:cof".
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
09.05.2012, 17:05
1) Можно

2) Уточню (требуются ваши ответы):
Выбирать пользователь будет как бы по "Названиям" (самое первое текстовое поле в выложенном вами в первом сообщении в коде)?
И эти названия будут текстом тегов <OPTION>, а в value каждого <OPTION> вы планируете поместить некий идентификатор этой группы, и не знаете куда "сунуть" значение как раз последнего текстового поля (которое acсess), так?
0
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 234
09.05.2012, 17:20  [ТС]
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<form method="post" name="form">
<table id="rab_table" cellpadding="2" cellspacing="2"><tr>
<td>Логин</td>
<td>Супер админ.</td>
<td>Настройки</td>
<td>Обслуживание</td>
<td>Функции</td>
<td>Статистика</td>
<td>Шаблон</td>
<td>Вкл./откл. сайт</td>
<td>Помощь</td>
<td>Симольный вариант</td>
<td>Группы прав</td>
<td></td></tr><tr>
<td><input name="opt[name]" type="text" value="user" size="14" maxlength="40" /></td>
<td><input name="opt[0]" type="checkbox" value="a" /></td>
<td><input name="opt[1]" type="checkbox" value="c" checked/></td>
<td><input name="opt[2]" type="checkbox" value="s" /></td>
<td><input name="opt[3]" type="checkbox" value="f" /></td>
<td><input name="opt[4]" type="checkbox" value="i" checked/></td>
<td><input name="opt[5]" type="checkbox" value="t" /></td>
<td><input name="opt[6]" type="checkbox" value="o" /></td>
<td><input name="opt[7]" type="checkbox" value="h" /></td>
<td><input name="opt[access]" type="text" size="14" maxlength="32" value="ci"/></td>
<td><select name="opt[group]"><option disabled> Группы прав: </option>
<option value="a">Главные администраторы</option>
<option value="oh">Начальники</option>
<option value="cs">Работники</option></select>
</td><td><input name="group[submit]" type="submit" value="Сохранить"/></td></tr></table></form>
Вот я скинул таблицу которую сейчас генерирует php чтобы было вам понятней. Обратите внимание на последнюю ячейку в которой находится select.
Пока я храню там в валуе именно символьную комбинацию, но мне это не подходит потому что в бд нужно записывать именно название группы в одну из ячеек, и только если форму access пуста тогда я запрошу из таблицы с группами символьную комбинацию.
Кароче получается следующее с одной стороны для записи в бд требуется только название в значении опции, а с другой для ява скрита ведь нужно куда-то символьную комбинацию запихнуть.
А поводу значения поля access мне его не надо сувать, мне нужно в него поместить символьную комбинацию которая соответствует группе(только в случае если на момент выбора группы поле access было пустое, если там хоть один символ есть, то уже не нужно ни чего делать)

Добавлено через 2 минуты
Вообще список должен выглядеть так:
HTML5
1
2
3
4
<select name="opt[group]"><option disabled> Группы прав: </option>
<option value="Главные администраторы">Главные администраторы</option>
<option value="Начальники">Начальники</option>
<option value="Работники">Работники</option></select>
Что бы на выходе я получил именно названия группы.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
09.05.2012, 18:38
Вы меня не поняли.
Я глагол "сунуть" применил не к полю с именем access, а к значению поля с именем access, т.е. к этой самой "символьной строке" по отноршению к тегу <OPTION>. Перечитайте выше.

Но, в общем, ваши ответы я понял.
-----

Теперь снова спрашиваю.
Можете ли вы формировать следующий HTML-код для тега <SELECT>:
HTML5
1
2
3
4
5
<select name="opt[group]">
<option>Выберите группы прав:</option>
<option value="Главные администраторы" lang="a">Главные администраторы</option>
<option value="Начальники" lang="oh">Начальники</option>
<option value="Работники" lang="cs">Работники</option></select>
Пояснения:
1. Первый опшен не надо делать недоступным. Он как раз нужен для того, чтобы Javascript мог зафиксировать изменение выбора.
2. Javascript'у вообще-то, неважно - каким будет значение параметра value у тегов <OPTION> (вот для отправки на сервер это важно, ибо отсылается пара "name=value"). Поэтому можно соответствующую символьную комбинацию поместить в любой другой атрибут, который даже можно самому придумать. Предлагаю использовать для хранения "символьного кода" атрибут lang - он поддерживается любым HTML-тегом, но практически никогда и никем не используется.
0
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 234
10.05.2012, 02:29  [ТС]
Да вы очень хорошо всё придумали, я легко могу сделать такой HTML код. Хорошо вы все придумали.
С праздником!

Добавлено через 4 часа 45 минут
Два раза написал =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.05.2012, 02:29
Помогаю со студенческими работами здесь

Создание входной формы при помощи Мастера
создание входной формы с помощью мастера форм.

Добавление данных в БД с формы при помощи Ajax
есть форма &lt;form method=&quot;POST&quot; action=&quot;&quot; name=&quot;form&quot;&gt; &lt;table&gt; &lt;tr&gt; &lt;td&gt;Фамилия&lt;/td&gt; ...

Изменение размера формы при помощи полосы прокрутки
Как менять размер формы при помощи полосы прокрутки?

При загрузке формы происходит заполнение DataSet, но заполнение происходит не вполне корректно
Есть строго типизированные DataSet и TableAdapter. При загрузке формы происходит заполнение DataSet, но заполнение происходит не вполне...

Переход между полями формы/таблицы (не при помощи Tab)
Добрый вечер всем! Возник вопрос по использованию клавиш ВВЕРХ/ВНИЗ/ВЛЕВО/ВПРАВО в качестве переходов между полями/таблицы формы в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru