Своя кнопка в форму добавления записи

Все вопросы/проблемы по установке и использовании.
Ответить
Аватара пользователя
mailarn
Инвестор
Инвестор
Сообщения: 150
Зарегистрирован: 18 июн 2021, 10:33
Имя: Антон
Откуда: Екатеринбург
Контактная информация:

Своя кнопка в форму добавления записи

Сообщение mailarn »

Возникла необходимость добавить в форму добавления записи свою кнопку с функцией 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: Своя кнопка в форму добавления записи

Сообщение Fait »

Я делал как-то такое.
Здесь точно участвует поле Ajax запрос.
В нём проводится нужный расчёт и результат с помощью скрипта заносится в созданное на форме поле.
Также на форме генерируется простая кнопка, и на клик по ней вешается скрипт.
Этот скрипт находится в js формы. Суть его в том, что он берёт значение из скрытого поля и копирует его в заданное поле.
Последний раз редактировалось Fait 08 сен 2024, 22:42, всего редактировалось 1 раз.
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 891
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Своя кнопка в форму добавления записи

Сообщение Fait »

Вот это я вставил в JS формы (это вкладка Настройка формы)
Данная функция вешается на создаваемую кнопку в поле 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: Своя кнопка в форму добавления записи

Сообщение Fait »

А вот это у меня в конце кода поля 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>';
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 891
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Своя кнопка в форму добавления записи

Сообщение Fait »

А вот так выглядит работа скрипта в момент расчёта. Это скрин с мобильного, поэтому немного кривовато может показаться.
Screenshot_2024-09-09-00-27-32-560_com.android.chrome-edit.jpg
А вот так выглядит после нажатия на кнопку со стрелочками
Screenshot_2024-09-09-00-30-37-718_com.android.chrome-edit.jpg
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 891
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Своя кнопка в форму добавления записи

Сообщение Fait »

Ах да, важный момент - функция copy_txt может скопировать данные только из полей формы типа input в другое аналогичное поле.
Я пытался скопировать данные из div и вставить - так и не удалось(
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 891
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Своя кнопка в форму добавления записи

Сообщение Fait »

И ещё, если поле с результатом расчёта скрыть, то копирование, увы, не сработает (мне не понравилось сначала, что это поле там вообще есть, я хотел изначально просто строчку с расчётом и кнопку справа. А потом ничего - привык) ).
Аватара пользователя
mailarn
Инвестор
Инвестор
Сообщения: 150
Зарегистрирован: 18 июн 2021, 10:33
Имя: Антон
Откуда: Екатеринбург
Контактная информация:

Re: Своя кнопка в форму добавления записи

Сообщение mailarn »

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: Своя кнопка в форму добавления записи

Сообщение Fait »

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 у кнопки вообще не помогает.
Сделайте сначала в точности, как у меня в коде.
Всё будет работать) Потом уже разберётесь по ходу дела, почему именно так работает
Ответить