Своя кнопка в форму добавления записи
- mailarn
- Инвестор
- Сообщения: 150
- Зарегистрирован: 18 июн 2021, 10:33
- Имя: Антон
- Откуда: Екатеринбург
- Контактная информация:
Своя кнопка в форму добавления записи
Возникла необходимость добавить в форму добавления записи свою кнопку с функцией php.
Для примера приведу простейшую функцию. $a + $b = $c
Надо что бы именно по нажатию кнопки из одного поля бралось значение $a, из второго поля значение $b, выполнялась функция и значение $c само подставлялось в трете поле.
Использую поле Ajax запрос что бы при изменении в полях так же менялись переменные. Кнопку вместе с функцией вроде удалось вставить, но сразу возникли проблемы.
Если вызываю функцию методом post, то идет конфликт с кнопкой "Сохранить" самой формы и запись добавляется при нажатии на мою кнопку.
echo '<form method="post">
<button type="submit" name="calculate">Посчитать</button>
</form>';
Пробовал использовать JavaScript для вызова функции расчета php - вообще работать не хочет.
И второе, как результат работы функции вставить в нужное поле не сохраняя в базу (просто подставить значение)?
Помогите решить проблему )
Для примера приведу простейшую функцию. $a + $b = $c
Надо что бы именно по нажатию кнопки из одного поля бралось значение $a, из второго поля значение $b, выполнялась функция и значение $c само подставлялось в трете поле.
Использую поле Ajax запрос что бы при изменении в полях так же менялись переменные. Кнопку вместе с функцией вроде удалось вставить, но сразу возникли проблемы.
Если вызываю функцию методом post, то идет конфликт с кнопкой "Сохранить" самой формы и запись добавляется при нажатии на мою кнопку.
echo '<form method="post">
<button type="submit" name="calculate">Посчитать</button>
</form>';
Пробовал использовать JavaScript для вызова функции расчета php - вообще работать не хочет.
И второе, как результат работы функции вставить в нужное поле не сохраняя в базу (просто подставить значение)?
Помогите решить проблему )
Создание отраслевых решений на базе CRM Руководитель https://webus.pro
- Fait
- Инвестор
- Сообщения: 891
- Зарегистрирован: 19 ноя 2020, 17:46
- Имя: Максим Балакшеев
- Откуда: Россия, Златоуст
- Организация: ИП Балакшеев Максим Георгиевич
Re: Своя кнопка в форму добавления записи
Я делал как-то такое.
Здесь точно участвует поле Ajax запрос.
В нём проводится нужный расчёт и результат с помощью скрипта заносится в созданное на форме поле.
Также на форме генерируется простая кнопка, и на клик по ней вешается скрипт.
Этот скрипт находится в js формы. Суть его в том, что он берёт значение из скрытого поля и копирует его в заданное поле.
Здесь точно участвует поле Ajax запрос.
В нём проводится нужный расчёт и результат с помощью скрипта заносится в созданное на форме поле.
Также на форме генерируется простая кнопка, и на клик по ней вешается скрипт.
Этот скрипт находится в js формы. Суть его в том, что он берёт значение из скрытого поля и копирует его в заданное поле.
Последний раз редактировалось Fait 08 сен 2024, 22:42, всего редактировалось 1 раз.
- Fait
- Инвестор
- Сообщения: 891
- Зарегистрирован: 19 ноя 2020, 17:46
- Имя: Максим Балакшеев
- Откуда: Россия, Златоуст
- Организация: ИП Балакшеев Максим Георгиевич
Re: Своя кнопка в форму добавления записи
Вот это я вставил в JS формы (это вкладка Настройка формы)
Данная функция вешается на создаваемую кнопку в поле Ajax
Обратите внимание, во 2 строчке удаляются все нечисловые символы, а в 3 строчке значение округляется в меньшую сторону до ближайшего целого числа.
В 4 строчке вместо 777 поставьте номер поля, куда должно будет скопироваться значение.
Данная функция вешается на создаваемую кнопку в поле Ajax
Обратите внимание, во 2 строчке удаляются все нечисловые символы, а в 3 строчке значение округляется в меньшую сторону до ближайшего целого числа.
В 4 строчке вместо 777 поставьте номер поля, куда должно будет скопироваться значение.
Код: Выделить всё
function copy_txt(txt) {
var x = txt.value;
x = x.replace(/ /g, "");
x = Math.floor(x);
$("#fields_777").val(x);
}
Последний раз редактировалось Fait 08 сен 2024, 22:41, всего редактировалось 1 раз.
- Fait
- Инвестор
- Сообщения: 891
- Зарегистрирован: 19 ноя 2020, 17:46
- Имя: Максим Балакшеев
- Откуда: Россия, Златоуст
- Организация: ИП Балакшеев Максим Георгиевич
Re: Своя кнопка в форму добавления записи
А вот это у меня в конце кода поля Ajax
В переменной $total результат расчёта, который я и подставляю с помощью кнопки в нужное мне поле (номер поля указывается в функции, которая вставляется в JS формы, а не здесь).
В переменной $total результат расчёта, который я и подставляю с помощью кнопки в нужное мне поле (номер поля указывается в функции, которая вставляется в JS формы, а не здесь).
Код: Выделить всё
echo '<div class="price-calc">
<input value="'.number_format($total,2,'.',' ').'" type="text" class="form-control" id="txt01" readonly="readonly" style="display: inline-block; margin-top: -6px; width: 80px !important;">
<button style="border-radius: 5px; background-color: #F57C00; color: white; padding: 4px; margin-top: -6px; line-height: 20px;" onclick="copy_txt(txt01); return false;"><i class="la la-arrow-circle-right"></i></button>
</div>';
- Fait
- Инвестор
- Сообщения: 891
- Зарегистрирован: 19 ноя 2020, 17:46
- Имя: Максим Балакшеев
- Откуда: Россия, Златоуст
- Организация: ИП Балакшеев Максим Георгиевич
Re: Своя кнопка в форму добавления записи
А вот так выглядит работа скрипта в момент расчёта. Это скрин с мобильного, поэтому немного кривовато может показаться.
А вот так выглядит после нажатия на кнопку со стрелочками
- Fait
- Инвестор
- Сообщения: 891
- Зарегистрирован: 19 ноя 2020, 17:46
- Имя: Максим Балакшеев
- Откуда: Россия, Златоуст
- Организация: ИП Балакшеев Максим Георгиевич
Re: Своя кнопка в форму добавления записи
Ах да, важный момент - функция copy_txt может скопировать данные только из полей формы типа input в другое аналогичное поле.
Я пытался скопировать данные из div и вставить - так и не удалось(
Я пытался скопировать данные из div и вставить - так и не удалось(
- Fait
- Инвестор
- Сообщения: 891
- Зарегистрирован: 19 ноя 2020, 17:46
- Имя: Максим Балакшеев
- Откуда: Россия, Златоуст
- Организация: ИП Балакшеев Максим Георгиевич
Re: Своя кнопка в форму добавления записи
И ещё, если поле с результатом расчёта скрыть, то копирование, увы, не сработает (мне не понравилось сначала, что это поле там вообще есть, я хотел изначально просто строчку с расчётом и кнопку справа. А потом ничего - привык) ).
- mailarn
- Инвестор
- Сообщения: 150
- Зарегистрирован: 18 июн 2021, 10:33
- Имя: Антон
- Откуда: Екатеринбург
- Контактная информация:
Re: Своя кнопка в форму добавления записи
Спасибо, буду пробовать.Fait писал(а): ↑08 сен 2024, 22:25 А вот это у меня в конце кода поля Ajax
В переменной $total результат расчёта, который я и подставляю с помощью кнопки в нужное мне поле (номер поля указывается в функции, которая вставляется в JS формы, а не здесь).Код: Выделить всё
echo '<div class="price-calc"> <input value="'.number_format($total,2,'.',' ').'" type="text" class="form-control" id="txt01" readonly="readonly" style="display: inline-block; margin-top: -6px; width: 80px !important;"> <button style="border-radius: 5px; background-color: #F57C00; color: white; padding: 4px; margin-top: -6px; line-height: 20px;" onclick="copy_txt(txt01); return false;"><i class="la la-arrow-circle-right"></i></button> </div>';
Проблема в том, что вставляю кнопку в поле Ajax запрос, да же без функции, самую простую и при нажатии форма закрывается и строка добавляется. Аналогично нажатию на кнопку "сохранить"
return false у кнопки вообще не помогает.
Создание отраслевых решений на базе CRM Руководитель https://webus.pro
- Fait
- Инвестор
- Сообщения: 891
- Зарегистрирован: 19 ноя 2020, 17:46
- Имя: Максим Балакшеев
- Откуда: Россия, Златоуст
- Организация: ИП Балакшеев Максим Георгиевич
Re: Своя кнопка в форму добавления записи
Сделайте сначала в точности, как у меня в коде.mailarn писал(а): ↑09 сен 2024, 06:05Спасибо, буду пробовать.Fait писал(а): ↑08 сен 2024, 22:25 А вот это у меня в конце кода поля Ajax
В переменной $total результат расчёта, который я и подставляю с помощью кнопки в нужное мне поле (номер поля указывается в функции, которая вставляется в JS формы, а не здесь).Код: Выделить всё
echo '<div class="price-calc"> <input value="'.number_format($total,2,'.',' ').'" type="text" class="form-control" id="txt01" readonly="readonly" style="display: inline-block; margin-top: -6px; width: 80px !important;"> <button style="border-radius: 5px; background-color: #F57C00; color: white; padding: 4px; margin-top: -6px; line-height: 20px;" onclick="copy_txt(txt01); return false;"><i class="la la-arrow-circle-right"></i></button> </div>';
Проблема в том, что вставляю кнопку в поле Ajax запрос, да же без функции, самую простую и при нажатии форма закрывается и строка добавляется. Аналогично нажатию на кнопку "сохранить"
return false у кнопки вообще не помогает.
Всё будет работать) Потом уже разберётесь по ходу дела, почему именно так работает