Перейти к публикации

Добавления новых input для форм DLE из JS


Рекомендованные сообщения

Здравствуйте.
Есть задача передавать штатным формам DLE новые определённые скрытые input, делать это нужно из подключаемого JS файла.
Пробовал делать так:

$('<input type="hidden" name="input_1" value="12345" />').appendTo('#sendmail');
formData.append('input_1', '12345');

Ни один из способов не приводит к тому что отправка формы передавала бы input_1 со значением 12345.

В тонкостях JS не силён, возможно кто то подскажет как сделать без правки dle_js.js.

@celsoft , это вообще возможно или formData, применяемая в DLE, так не умеет?

Ссылка на сообщение
Поделиться на других сайтах
$('<input type="hidden" name="input_1" value="12345" />').appendTo('#sendmail');

етот должен сработать. надо вызвать его в самом низу страници. а второй ясное дело что не будет работать. где вы обьявили формдата 

 

Изменено пользователем crafic
Ссылка на сообщение
Поделиться на других сайтах
1 час назад, crafic сказал:

$('<input type="hidden" name="input_1" value="12345" />').appendTo('#sendmail');

етот должен сработать. надо вызвать его в самом низу страници. а второй ясное дело что не будет работать. где вы обьявили формдата 

 

Вы думаете я не пробовал?
В DOM он добавляется, но при отправки формы, данного поля нет в отправляемых данных.

Ссылка на сообщение
Поделиться на других сайтах
52 минуты назад, Mr. Bot сказал:

Вы думаете я не пробовал?
В DOM он добавляется, но при отправки формы, данного поля нет в отправляемых данных.

А вы прописали инпут в логику скрипта для обработки его? Если например 

<input type="hidden" name="input_1" value="12345" />

и имя input_1 не прописано в обработку кнопки submit то толку от того что вы создаете этот инпут не будет

Ссылка на сообщение
Поделиться на других сайтах
38 минут назад, alukardua сказал:

А вы прописали инпут в логику скрипта для обработки его? Если например 


<input type="hidden" name="input_1" value="12345" />

и имя input_1 не прописано в обработку кнопки submit то толку от того что вы создаете этот инпут не будет

Мы вкурсе про ваши познания DLE, не нужно их постоянно демонстрировать.
Данная тема не для вас, вы тут всё равно не понимаете о чём речь.

Ссылка на сообщение
Поделиться на других сайтах
52 минуты назад, Mr. Bot сказал:

Мы вкурсе про ваши познания DLE, не нужно их постоянно демонстрировать.
Данная тема не для вас, вы тут всё равно не понимаете о чём речь.

в том и дело что это не DLE. А банальный PHP и JS просто как инпут передаст данные скрипту если скрипт не знает о нем?

Изменено пользователем alukardua
Ссылка на сообщение
Поделиться на других сайтах

Просто автор топика подумал что если в форму добавить поле, то оно каким то магическим образом будет уже обрабатываться на стороне сервера PHP скриптом. Непонятно конечно с чего бы это если о наличии какого то поля с произвольным именем DLE не знает и знать не может в принципе. Для обработки своего поля с произвольным именем нужно писать еще и серверный код на PHP который будет принимать его, и делать с ним необходимые действия.

 

А вообще конечно достаточно просто прочитать документацию по обратной связи, т.к. в DLE есть функция дополнительных полей для обратной связи https://dle-news.ru/extras/online/index.html?all27.html 

 

Цитата

<input placeholder="Ваш номер телефона" type="text" name="xfield[tel]">

 

где tel это уникальное имя дополнительного поля, а в шаблоне e-mail сообщений в админпанели размещаете тег: {%tel%}, после чего заполненный пользователем номер телефона будет также присылаться вместе с сообщением. Допускается использование любого количества дополнительных полей.

 

Вы также можете в обратной связи прикреплённые к письмам файлы. Для этого в настройках групп можете задать для каждой группы пользователей разрешено ли им прикреплять к письмам файлы. Также можете указать сколько максимально файлов они могут приложить к письму, их максимальный суммарный размер, а также какие типы расширений файлов, которые они могут отправлять.

Только вот имена полей это важная часть чтобы DLE корректно принял и обработал ваше произвольное поле.

Ссылка на сообщение
Поделиться на других сайтах
В 05.08.2020 в 18:03, celsoft сказал:

Просто автор топика подумал что если в форму добавить поле, то оно каким то магическим образом будет уже обрабатываться на стороне сервера PHP скриптом. Непонятно конечно с чего бы это если о наличии какого то поля с произвольным именем DLE не знает и знать не может в принципе. Для обработки своего поля с произвольным именем нужно писать еще и серверный код на PHP который будет принимать его, и делать с ним необходимые действия.

Просто вы как всегда додумываете и искажаете то что написал автор топика.
Где мной было указано что то про обработку формы PHP кодом?
А было там указано только:

В 04.08.2020 в 20:05, Mr. Bot сказал:

Ни один из способов не приводит к тому что отправка формы передавала бы input_1 со значением 12345.

Может уже хватит отвечать про тёплое, когда спросили про мягкое?

Чуть выше я отвечал crafic, о том что в DOM поле появляется, однако при срабатывании отправки формы, данные поля обработчику не передаются, как будто бы их нет в форме.
Попробуйте сами добавить динамический input в форму обратной связи, и посмотреть что в итоге отправится обработчику.

В 05.08.2020 в 16:46, crafic сказал:

только что попробовал с кодом 


$('<input type="hidden" name="input_1" value="12345" />').appendTo('#sendmail');

все работает. https://skr.sh/s3Vt07OnIg1

Хм, возможно у меня не работает потому что данное поле добавляется из JS функции?
Хотя вроде и без функции пробовал.

Изменено пользователем Mr. Bot
Ссылка на сообщение
Поделиться на других сайтах

В проблеме разобрался, немного неправильно вызывал динамическое добавление input в обёртке.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...