18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827

Разъединить действие двух клавишь submit в одной форме

17.05.2019, 21:14. Показов 3363. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть форма с несколькими текстовыми полями. Каждое поле ответственно за какой-то признак (аргумент определенного элемента). Некая функция отвечает за их применение. Когда поле пустое - естественно ничего в отношении этого признака не применяется. Один из признаков - это цвет. Его конечно можно вбивать руками, но все цвета не упомнишь, да и часто лень думать. Можно подставить js чтобы выбирал цвет и вбивал его в пустое поле, но не хочется пока цеплять джава-скрипт. Можно выбрать html кнопку "color". Но тогда поле будет всегда считаться заполненным и применяться даже тогда, когда ты этого не хочешь, хоть белый установи по дефолту, хоть какой. По крайней мере пока не знаю можно ли этой кнопкой задавать именно отсутствие цвета.
Можно создать рядом ещё одно текстовое поле и добавить кнопку submit с надписью типа "Выбрать", жать на кнопку color, выбирать цвет, нажимать на кнопку "Выбрать" и переносить значение цвета в текстовое поле. Но возникает два момента.
1. Если в других текстовых полях уже что-то вбито, то оно применится, а не хотелось бы, вдруг какие-то неправильные значения.
2. Если цвет не выбирал, а вбил значения в другие текстовые поля и захотел их применить, то значение цвета перенесется в текстовое поле, и его потом придется чистить.
Поэтому вопрос, можно ли как-то в одной форме организовать разную реакцию двух кнопок submit? Или как вообще ещё можно организовать подобное?
Если надо, приведу код формы с пхп вставками, ответственными за перенос значения цвета в текстовое поле (она простенькая)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.05.2019, 21:14
Ответы с готовыми решениями:

CF 7. Два разных кнопки submit в одной форме
С помощью фильтра add_filter( 'wpcf7_before_send_mail', 'wpcf7_before_send_mail_start_function' ); я могу после отправки письма совершать...

Вызов submit у двух форм одной кнопкой
Доброго дня, вопрос следующий есть две формы <form class="form-horizontal ms2_form" method="post"...

При нажатии на кнопку на одной форме (Form1) выполнить действие на другой (Form2)
Как сделать так чтобы при нажатии на клавишу button на одной форме(Form1) выполнялись действия OnCreate другой формы(Form2) и открывается...

21
 Аватар для sad67man
2604 / 1508 / 689
Регистрация: 23.08.2015
Сообщений: 3,839
17.05.2019, 21:38
DyadyaGe, Если вы ищете самое простое решение, то добавьте чекбокс

HTML5
1
2
3
4
5
6
7
8
<form method="post">
    <textarea name="text"></textarea>
    <div>
        <label><input type="checkbox" name="is_set_color" value="1">Установить цвет</label>
        <input type="color" name="color">
    </div>
    <button>Сохранить</button>
</form>
PHP
1
2
$text = $_POST['text'];
$color = !empty($_POST['is_set_color'] ? $_POST['color'] : null;
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
17.05.2019, 21:41
DyadyaGe, можно в инпуты с кнопками добавить атрибуты name="submit_1" и name="submit_2", а на серверной части проверять, какая из кнопок была нажата, типа так:
PHP
1
2
if ( isset($_POST['submit_1']) ) { /* Нажата 1-я */ } 
if ( isset($_POST['submit_2']) ) { /* Нажата 2-я */ }
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
17.05.2019, 21:49  [ТС]
Цитата Сообщение от VNIIAEN Посмотреть сообщение
можно в инпуты с кнопками добавить атрибуты name="submit_1" и name="submit_2", а на серверной части проверять, какая из кнопок была нажата, типа так:
Так я уже делал, почему-то не помогает. Даже отдельно прописывал
PHP
1
2
3
4
5
if(isset($_POST['button1'])) {
    echo 'Нажата была кнопка с именем button1';
} elseif(isset($_POST['button2'])) {
    echo 'Нажата была кнопка с именем button2';
}
Но печатает в любом случае кнопка 1,даже когда нажимаешь 2. И как бы главная - 2.
Цитата Сообщение от sad67man Посмотреть сообщение
Если вы ищете самое простое решение, то добавьте чекбокс
Честно говоря про чекбоксы не думал, но надо подумать, поэкспериментирую - скажу.
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
17.05.2019, 22:03
Цитата Сообщение от DyadyaGe Посмотреть сообщение
Так я уже делал, почему-то не помогает.
Значит что-то не правильно делали.
Цитата Сообщение от DyadyaGe Посмотреть сообщение
Даже отдельно прописывал
В этом условии не должно быть elseif, условий должно быть два:
PHP
1
2
3
4
5
6
7
if (isset($_POST['button1'])) {
    echo 'Нажата была кнопка с именем button1';
}
 
if (isset($_POST['button2'])) {
    echo 'Нажата была кнопка с именем button2';
}
При этом в теге <input> конечно же должен быть атрибут name="buttonN":
HTML5
1
2
3
4
<form method="post">
    <input type="submit" name="button1">
    <input type="submit" name="button2">
</form>
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
17.05.2019, 22:07
DyadyaGe, вот вам минимально воспроизводимый пример (сохранить весь код в один php-файл):
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
 
if (isset($_POST['button1'])) {
    echo 'Нажата была кнопка с именем button1';
}
 
if (isset($_POST['button2'])) {
    echo 'Нажата была кнопка с именем button2';
}
 
?>
 
<form method="post">
    <input type="submit" name="button1">
    <input type="submit" name="button2">
</form>
0
 Аватар для sad67man
2604 / 1508 / 689
Регистрация: 23.08.2015
Сообщений: 3,839
17.05.2019, 22:08
VNIIAEN, elseif тоже прокатит)
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
17.05.2019, 22:10
Цитата Сообщение от sad67man Посмотреть сообщение
elseif тоже прокатит)
Не спорю, просто нет в нём необходимости.
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
17.05.2019, 22:13  [ТС]
Цитата Сообщение от sad67man Посмотреть сообщение
Если вы ищете самое простое решение, то добавьте чекбокс
Слегка переделал ваш вариант вот так:
PHP
1
2
3
4
5
6
7
8
9
10
11
<form method="post">
    <textarea name="text"><?php
if (isset($_POST['is_set_color']))
{echo $_POST['color'];}
?></textarea>
    <div>
        <label><input type="checkbox" name="is_set_color" value="">Установить цвет</label>
        <input type="color" name="color" value="">
    </div>
    <button>Сохранить</button>
</form>
В таком виде работает. Но все таки лишнее телодвижение с чекбоксом... Хотелось бы чтоб пхп сам все делал.
Цитата Сообщение от VNIIAEN Посмотреть сообщение
Значит что-то не правильно делали.
Сейчас буду разбираться с вашими подсказками, ато сходу не все понял.
Цитата Сообщение от VNIIAEN Посмотреть сообщение
Цитата Сообщение от sad67man Посмотреть сообщение
А value для кнопок прописывали?
Прописывал
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
17.05.2019, 22:15
Цитата Сообщение от DyadyaGe Посмотреть сообщение
Сейчас буду разбираться с вашими подсказками, ато сходу не все понял.
Да там достаточно просто сохранить весь код в файл, и запустить.
0
 Аватар для sad67man
2604 / 1508 / 689
Регистрация: 23.08.2015
Сообщений: 3,839
17.05.2019, 22:19
Цитата Сообщение от DyadyaGe Посмотреть сообщение
Но все таки лишнее телодвижение с чекбоксом...
Дело ваше, я все равно не понял до конца в чем заключается задача.
Только что вы в таком случае будете делать при нажатии обычной кнопки? там вы будете не учитывать цвет? Или для каждого признака будет своя кнопка? Сколько тогда будет телодвижений, чтоб сохранять каждый признак по отдельности? Это при том, что при нажатии на кнопку "Сохранить цвет" у вас будет перегружаться страница.
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
17.05.2019, 22:24  [ТС]
Цитата Сообщение от VNIIAEN Посмотреть сообщение
Да там достаточно просто сохранить весь код в файл, и запустить.
В том то и дело, что отдельно от моей формы все работает. Не пойму чем моя отличается.
0
 Аватар для sad67man
2604 / 1508 / 689
Регистрация: 23.08.2015
Сообщений: 3,839
17.05.2019, 22:26
Цитата Сообщение от DyadyaGe Посмотреть сообщение
Не пойму чем моя отличается.
Покажите код формы. И обработчика за одно.
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
17.05.2019, 22:29  [ТС]
Цитата Сообщение от sad67man Посмотреть сообщение
Дело ваше, я все равно не понял до конца в чем заключается задача.
Ну в текстовые поля, напр, можно вбить размеры в пикселях и тп, тип, позицию (ну это можно прикрутить через радио-кнопку),эффекты какие-то. Ну а цвет в любом случае нужно выбирать. А пока поле пустое, значение берется из файла стилей. Потом эти значения можно или туда записывать, или применить "временно" к странице, вплоть до сохранения сессии.
0
 Аватар для sad67man
2604 / 1508 / 689
Регистрация: 23.08.2015
Сообщений: 3,839
17.05.2019, 22:35
Цитата Сообщение от DyadyaGe Посмотреть сообщение
Ну а цвет в любом случае нужно выбирать
Я бы на вашем месте прикрутил бы какой-нибудь color-picker на jquery
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
17.05.2019, 22:35  [ТС]
Цитата Сообщение от sad67man Посмотреть сообщение
Покажите код формы. И обработчика за одно.
HTML5
1
2
3
4
5
6
7
<form action="" method="post" enctype="multipart/form-data">
цвет фона для чего-то:<input name="button1" value="#ffffff" type="color"><input name="button1" value="выбрать" type="submit"><input name="SetWName[w_bg_color]" value="<?php if(isset($_POST['button1'])) echo $_POST['button1']; ?>" type="text"><br>
цвет текста чего-то: <input name="SetWName[w_text_color]" value="" type="text"><br>
ширина чего-то: <input name="SetWName[w_width]" value="" type="text"><br>
высота чего-то: <input name="SetWName[w_height]" value="" type="text"><br>
                   <input name="button2" value="сменить" type="submit">
                </form>
И эта проверка все равно показывает нажатие кнопки1
PHP
1
2
3
4
5
if(isset($_POST['button1'])) {
    echo 'Нажата была кнопка с именем button1';
} elseif(isset($_POST['button2'])) {
    echo 'Нажата была кнопка с именем button2';
}
0
 Аватар для sad67man
2604 / 1508 / 689
Регистрация: 23.08.2015
Сообщений: 3,839
17.05.2019, 22:36
Лучший ответ Сообщение было отмечено DyadyaGe как решение

Решение

Цитата Сообщение от DyadyaGe Посмотреть сообщение
И эта проверка все равно показывает нажатие кнопки1
У вас у инпута type="color" прописан name="button1", вот от туда значение и берется.
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
17.05.2019, 22:40
Цитата Сообщение от DyadyaGe Посмотреть сообщение
В том то и дело, что отдельно от моей формы все работает. Не пойму чем моя отличается.
У вас есть два варианта: прототип и ваш вариант. Вот и сравнивайте, что где не так, и исправляйте, что бы работало так, как вам угодно.
0
 Аватар для sad67man
2604 / 1508 / 689
Регистрация: 23.08.2015
Сообщений: 3,839
17.05.2019, 22:42
Цитата Сообщение от DyadyaGe Посмотреть сообщение
А пока поле пустое, значение берется из файла стилей
Вы можете в color input установить цвет по умолчанию такой же как у вас в стилях.
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
17.05.2019, 23:00  [ТС]
Цитата Сообщение от sad67man Посмотреть сообщение
У вас у инпута type="color" прописан name="button1", вот от туда значение и берется.
О, спасибо, невнимательность и спешка... кстати, ещё и в последней проверке надо менять проверочное имя на имя инпута колор...
Все, вопрос решен. Всем спасибо )
Цитата Сообщение от sad67man Посмотреть сообщение
Я бы на вашем месте прикрутил бы какой-нибудь color-picker на jquery
Я в принципе уже нашел такой скриптик и в некоторых примерах прикручивал его, но поскольку я все это делаю пока что в образовательных целях, то хотелось именно на пхп. В том числе и чтобы понять разницу по нагрузке и тп. Хотя конечно по цветам он вроде как уступает джава-скрипту (ну или я не разобрался)

А где ставить, галочку, что вопрос решен?

Добавлено через 7 минут
Цитата Сообщение от sad67man Посмотреть сообщение
Вы можете в color input установить цвет по умолчанию такой же как у вас в стилях.
Это если один сайт, то можно заморочится, а если их больше? А если захочется поменять дефолтный?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.05.2019, 23:00
Помогаю со студенческими работами здесь

Связь двух комбобоксов на одной форме
Подскажите пожалуйста как сделать, чтобы при выборе в первом комбобоксе допустим &quot;5&quot;, во втором отображались только...

Построение графиков двух функций на одной форме
Задать два графика на одной форме , на которых будет выдаваться по нажатию кнопки графики , на первом графике первая функция ,на втором...

Смена положение элементов на форме путем нажатия клавишь
Очень простой вопрос, но я не могу вспомнить как это сделать. А именно. В проекте ASP.NET WebApplication можно &quot;натаскивать&quot;...

Хочу чтоб объект из imagelist'a двигался по форме при нажатии клавишь
Подскажите новичку в VB, PliZZZ! Хочу чтоб объект из imagelist'a двигался по форме при нажатии клавиш!

Как сделать авторизацию двух пользователей причем один имеет доступ ко всему, а второй только к одной форме?
Пожалуйста помогите Добавлено через 8 часов 46 минут Windows Worm c#


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru