
<@IF: > . Отправка большой формы без заморочек <@ELSE> Я написал простой, но полезный скриптик, отправки всех полей формы без обращения к каждому, который может кому-то пригодится. <@ENDIF>
Добрый день, дорогие друзья!
Может эта тема и поднималась уже, но я мысленно искал это решение несколько лет, и, буквально этой ночью, меня осенило.
Стояла задача отправить клиенту заполненную анкету на сайте. Задача травиальная, но было две проблемы:
1) Количество заполняемых полей больше пятидесяти
2) Сама анкета на бассурманком языке
Первой мыслью было стандартное присвоение каждому полю уникального названия, после чего копипаст формы в шаблол письма с заменой полей на переменные вида $_POST['value_name']
Но, там же еще и чекбоксы с радио-инпутами… Их тоже как-то надо проверять… Кароче, че-то мне эта затея не понравилась и написал простой, но полезный скриптик, который может кому-то пригодится:
Листинг когда | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
function sendForm() { $("input[type=text]").each(function(){ $(this).replaceWith('<span style="color:green;">'+$(this).val()+'</span>'); }); $("textarea").each(function(){ $(this).replaceWith('<span style="color:green;">'+$(this).val()+'</span>'); }); $("input[type=checkbox]:checked").each(function(){ $(this).replaceWith('<span style="color:green; font-weight:700;">X</span>'); }); $("input[type=radio]:checked").each(function(){ $(this).replaceWith('<span style="color:green; font-weight:700;">X</span>'); }); return $('form').html(); } |
Если кому-то не нравится буква «Х» то можно заменить ее на ✔, но не проверял как оно работает.
Смысл скриптика, думаю, понятен — заменяем все введенные данные на значения, а потом возвращаем ВСЮ форму. Что дальше с ней делать уже зависит от конкретной задачи — отправлять письмом или заносить в базу, но таким образом можно сэкономить кучу времени. Буду рад, если кому-то пригодится мое решение.