|
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 234
|
||||||
Заполнение текстовой формы при помощи чекбоксов03.05.2012, 13:22. Показов 4819. Ответов 30
Метки нет (Все метки)
Здравствуйте, помогите пожалуйста с js, а то я не шарю в нём, а время на изучения нет.
Нужна программа которая будет в текстовой форме отображать стоит ли галочка в чек боксе. Как это выглядит, всё просто пользователь ставит галочку и в текстовой форме появляется символ соответствующий данному переключателю, их на странице несколько. При чём сам чек бокс не содержит в значении тот символ который будет отображаться в форме, это нужно задать вручную в программе мне. Мне шаблон подкинули типа: "если галочка стоит в чек боксе с названием "таким-то", то в форме такой-то добавить такой-то символ. Кстати чек боксы выводятся подряд и хотелось бы чтобы в форме сохранялся порядок их расположения, это наверное сделать сложнее. Вот форме с таблицей вместе:
Заранее благодарен.
0
|
||||||
| 03.05.2012, 13:22 | |
|
Ответы с готовыми решениями:
30
Заполнение текстовой формы на сайте Перемещение формы при помощи мыши Нуждаюсь в помощи при обработке формы |
|
супермизантроп
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 чекбоксов я вынес в отдельный файл т.к. они часто повторяются в программе и проще в цикле их вывести чем все прописывать по сто раз. Храню я их следующим образом:
На выходе у меня получаются чибоксы вида opt[key] = 1 key это ключи из массива all_access А когда уже отправляю на сервер я их в цикле перебираю и какие пришли их ключи подставляю в массив all_access['$key']['symbol']. Поэтому получается что они содержат сами символы, а содержат только ключ. Вот как быть? В php я смогу вывести javasript код который вставит в него нужные соответствия символам, но нужно учитывать формат хранения их в файле. А может это сложно и лучше не замарачиваться?
0
|
||||||
|
супермизантроп
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
|
|
|
супермизантроп
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 данные пришли массивом
Ещё раз извините просто устал, если что не ясно, спрашивайте на этот раз я постараюсь внимательнее отвечать. Добавлено через 14 минут Вроде ни чего не упустил, спросите если что-то ещё пропустил.
0
|
||||||
|
супермизантроп
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'] и в цикле его переберёт, т.к. придут у нас только чибоксы с единицами, т.е. с галочками, то придут только те что нужны. Потом я беру массив с права и подставляю туда
Я так понимаю будет проще засунуть в валуе к чибоксам соответсвующие символы и не мучаться, то что пользователь может свои бяки подсовывать в валуе к ним я потом отловлю перед записью в бд. Но обязательно нужно чтобы были имена opt[key] Так гораздо проще работать в дальнейшем. opt[new_group] нужна чтобы сделать такую вещь на странице
Добавлено через 34 секунды Ниужели имена opt[key], так сильно осложняют javascript программу? Добавлено через 1 минуту Насчёт методов метода гет незнаю но когда пост благодаря квадратным скобкам можно задавать массив, Это 100%, иначе моя программа бы не работала. Добавлено через 5 минут Кстати получается что эллементы не только нужны для формирования opt[access], а они так же могут обрабатываться сервером, в случае если javascript был отключён. Давайте будем отталкивать от что имеем таблицу:
Возможно я напутал, обратите внимание что в opt находятся ключи, а там я написал имена. Добавлено через 1 минуту Теперь всё становится на свои места. Просто нужна программа которая будет писать в текстовой бокс значение чек бокса если поставить галочку и удалять его если галочка будет убрана. Вот как бы сделать чтобы ещё последовательность оставлялась неизменной.
0
|
||||||||||||||||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
||||||
| 04.05.2012, 01:39 | ||||||
|
Сразу после закрывающего тега </form> добавьте скриптовой блок:
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
|
|
|
супермизантроп
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
|
|
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|||||||||||
| 04.05.2012, 09:32 | |||||||||||
|
Поскольку (1) возможно несколько строк в таблице и поскольку (2) возможны разные сложные имена для полей ввода разных форм с учетом (3) приоритетного первого чекбокса в строке
ориентироваться будем на следующее ОБЯЗАТЕЛЬНОЕ в каждой форме и в КАЖДОЙ таблице: а) в каждой форме будет именно таблица (тег <TABLE>); б) каждая строка всех таблиц формируются по единому шаблону:
г) форма с такой таблицей может быть только одна на странице; д) ВСЕ такие таблицы на ВСЕХ страницах будут иметь ОДИН и ТОТ ЖЕ id="rab_table" Тогда можно сделать один скриптовой файл, который можно будет подключать ко всякой странице в заголовке (между <head> и </head>) тегом <script src="путь к файлу file.js"></script> Текст этого файла (сохраните AS IS под именем file.js и положите куда-нить на сервер)
1
|
|||||||||||
|
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 234
|
|||||||||||
| 04.05.2012, 11:33 [ТС] | |||||||||||
|
Всё превосходно работает! Вот это то что нужно! Огромное вам спасибо!
Добавлено через 11 минут Раз вы так хорошо знаете js, может ещё подскажете по другой теме. В общем дело такое у меня на сайте было вертикальное css меню, я его взял с интернета. Но с ним есть проблемы то что оно не работает в ie. Для этого написан js fix.
1) Появляется ошибка, в ie тестере пишет просто "An error has occured in this page." Ошибка только в ie! 2)Меню представляет собой список
Как думаете может этот вопрос вынести в отдельную тему?
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
|
|
|
супермизантроп
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 [ТС] | |||||||||||
Пока я храню там в валуе именно символьную комбинацию, но мне это не подходит потому что в бд нужно записывать именно название группы в одну из ячеек, и только если форму access пуста тогда я запрошу из таблицы с группами символьную комбинацию. Кароче получается следующее с одной стороны для записи в бд требуется только название в значении опции, а с другой для ява скрита ведь нужно куда-то символьную комбинацию запихнуть. А поводу значения поля access мне его не надо сувать, мне нужно в него поместить символьную комбинацию которая соответствует группе(только в случае если на момент выбора группы поле access было пустое, если там хоть один символ есть, то уже не нужно ни чего делать) Добавлено через 2 минуты Вообще список должен выглядеть так:
0
|
|||||||||||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
||||||
| 09.05.2012, 18:38 | ||||||
|
Вы меня не поняли.
Я глагол "сунуть" применил не к полю с именем access, а к значению поля с именем access, т.е. к этой самой "символьной строке" по отноршению к тегу <OPTION>. Перечитайте выше. Но, в общем, ваши ответы я понял. ----- Теперь снова спрашиваю. Можете ли вы формировать следующий HTML-код для тега <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
|
|
| 10.05.2012, 02:29 | |
|
Помогаю со студенческими работами здесь
20
Создание входной формы при помощи Мастера Добавление данных в БД с формы при помощи Ajax
При загрузке формы происходит заполнение DataSet, но заполнение происходит не вполне корректно Переход между полями формы/таблицы (не при помощи Tab) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|