Перейти к содержимому


Связь С Администрацией


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 17

#1 zhenpoplen

zhenpoplen

    Пользователь

  • Пользователи
  • PipPip
  • 21 сообщений

Отправлено 20 Июнь 2012 - 23:03

Здравствуйте.Подскажите пожалуйста как в шаблоне Мокко в меню Контакты( связь с администрацией) добавить еще несколько полей, что б при отправки письма пользователем сайта указывались дополнительные данные.
Например, на странице связи с администрацией есть поля для заполнения: 1. Представьтесь, пожалуйста, 2. Email для обратной связи, 3.Текст сообщения. Так вот как добавить еще одно поле или несколько размером как - 1. Представьтесь, пожалуйста, 2. Email для обратной связи, что бы при получении мною письма все было видно как и с этими 3-мя пунктами.
Спасибо

#2 kovalevap

kovalevap

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 342 сообщений

Отправлено 21 Июнь 2012 - 13:10

Для начала меняем основную ф-ию формы:

<form method="post" action="{FEEDBACK_URL}" class="fastOrderForm" enctype="multipart/form-data" onsubmit="javascript:
	  $('#feedback_message').val($('#feedback_pole1').val() + $('#feedback_pole2').val() + $('#message').val());">

В данном случае добавлены 2 поля - Поле 1 и Поле 2. Теперь добавляем сами элементы:

		<label style="font-size: 0.9em;" for="feedback_pole1">Поле 1</label>
		<input id="feedback_pole1" type="text" name="form[feedback_pole1]" maxlength="50" />

		<label style="font-size: 0.9em;" for="feedbaсk_pole2">Поле 2</label>
		<input id="feedbaсk_pole2" type="text" name="form[feedback_pole2]"/>

Суть в том, что доп. поля склеиваются с основным сообщением.

#3 zhenpoplen

zhenpoplen

    Пользователь

  • Пользователи
  • PipPip
  • 21 сообщений

Отправлено 21 Июнь 2012 - 19:50

Просмотр сообщенияkovalevap (21 Июнь 2012 - 13:10) писал:

Для начала меняем основную ф-ию формы:

<form method="post" action="{FEEDBACK_URL}" class="fastOrderForm" enctype="multipart/form-data" onsubmit="javascript:
	  $('#feedback_message').val($('#feedback_pole1').val() + $('#feedback_pole2').val() + $('#message').val());">

В данном случае добавлены 2 поля - Поле 1 и Поле 2. Теперь добавляем сами элементы:

		<label style="font-size: 0.9em;" for="feedback_pole1">Поле 1</label>
		<input id="feedback_pole1" type="text" name="form[feedback_pole1]" maxlength="50" />

		<label style="font-size: 0.9em;" for="feedbaсk_pole2">Поле 2</label>
		<input id="feedbaсk_pole2" type="text" name="form[feedback_pole2]"/>

Суть в том, что доп. поля склеиваются с основным сообщением.

Поменял это:

<form method="post" action="{FEEDBACK_URL}" class="feedbackForm" enctype="multipart/form-data">

На это: 

<form method="post" action="{FEEDBACK_URL}" class="fastOrderForm" enctype="multipart/form-data" onsubmit="javascript:
	  $('#feedback_message').val($('#feedback_pole1').val() + $('#feedback_pole2').val() + $('#message').val());">


Добавил это:

		<label style="font-size: 0.9em;" for="feedback_pole1">Поле 1</label>
		<input id="feedback_pole1" type="text" name="form[feedback_pole1]" maxlength="50" />

		<label style="font-size: 0.9em;" for="feedbaсk_pole2">Поле 2</label>
		<input id="feedbaсk_pole2" type="text" name="form[feedback_pole2]"/>

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

#4 kovalevap

kovalevap

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 342 сообщений

Отправлено 22 Июнь 2012 - 09:06

Скинул в личку свой код полностью - он рабочий. Придется Вам поразбираться, времени переделывать всё нету.

#5 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 209 сообщений

Отправлено 22 Июнь 2012 - 11:45

После

Цитата

<label style="font-size: 0.9em;" for="feedback_pole1">Поле 1</label>
        <input id="feedback_pole1" type="text" name="form[feedback_pole1]" maxlength="50" />


поставьте тег переноса <br />

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

#6 kovalevap

kovalevap

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 342 сообщений

Отправлено 22 Июнь 2012 - 12:23

Поменял это:

<form method="post" action="{FEEDBACK_URL}" class="feedbackForm" enctype="multipart/form-data">

На это:

<form method="post" action="{FEEDBACK_URL}" class="fastOrderForm" enctype="multipart/form-data" onsubmit="javascript:
      $('#feedback_message').val($('#feedback_pole1').val() + $('#feedback_pole2').val() + $('#message').val());">

внимательнее с классом! У меня fastOrderForm, а у Вас стандартный - feedbackForm

#7 zhenpoplen

zhenpoplen

    Пользователь

  • Пользователи
  • PipPip
  • 21 сообщений

Отправлено 24 Июнь 2012 - 12:52

Здравствуйте, всем спасибо за ответы.
В муках пытаюсь что то поменять.
Сейчас вот что происходит:
1. При отправке сообщенний(при нажатии кнопки "Отправить" в поле "Текст сообщения" автоматически вносится информация из контактных данных, указанных выше. Вопрос - как это исправить что бы в этом поле был только текст сообщения.
2. При получении письма все равно не указывается новое созданное поле( контактный телефон), а только присылается телефон в "тексте письма", так же как при отправке сообщения указанном выше в п. 1 моих вопросов. Соответственно как это поправить?
Я думаю решив первый вопрос, второй решится автоматически
Скрин-шоты происходящего прилагаю.
Вот мой код:
<p id="breadcrumb">Вы здесь: <a href="http://{NET_DOMAIN}/">Главная</a> > <strong>Связь с администрацией</strong></p>
<h1>Связь с администрацией</h1>

<form method="post" action="{FEEDBACK_URL}" class="fastOrderForm" enctype="multipart/form-data" onsubmit="javascript:
$('#feedback_message').val($('#feedback_message').val() +
'Имя:' + $('#feedback_name').val() +
';Почта:' + $('#feedback_еmail').val() +
';Телефон:' + $('#feedback_tel').val() +
';сообщение:' + $('#message').val());">

  <div>
	<input type="hidden" name="hash" value="{HASH}" />
  
	{% IF FORM_SEND_OK %}
	  <h3 class="green">Ваше сообщение успешно отправлено администрации магазина</h3>
	  <a href="http://{NET_DOMAIN}/">Перейти на главную</a>
	{% ELSE %}
	  {% IF FORM_NOTICE %}<h3 class="red">{FORM_NOTICE | nl2br}</h3><br />{% ENDIF %}
	  <label for="feedback_name">Представьтесь, пожалуйста</label><br />
	  <input id="feedback_name" name="form[feedback_name]" value="{FORM_FEEDBACK_NAME}" maxlength="50" class="input required" /><br /><br />
  
  <label for="feedback_tel">Контактный телефон</label><br />
	  <input id="feedback_tel" name="form[feedback_tel]" value="{FORM_FEEDBACK_TEL}" maxlength="50" class="input required" /><br /><br />
  
	  <label for="feedback_еmail">Email для обратной связи</label><br />
	  <input id="feedback_еmail" name="form[feedback_email]" value="{FORM_FEEDBACK_EMAIL}" maxlength="255" class="input required email" /><br /><br />
	
	  <label for="feedback_message">Текст сообщения</label>
	  <textarea id="feedback_message" name="form[feedback_message]" cols="100" rows="10" class="required">{FORM_FEEDBACK_MESSAGE}</textarea><br /><br />
  
	  <label for="feedback_file">Прикрепить файл</label>
	  <input id="feedback_file" type="file" name="form[assets_file]" value="" /><br /><br />

	  <input type="submit" class="button_med" value="Отправить"/>
	{% ENDIF %}
  </div>
</form>

Прикрепленные изображения

  • 1.jpg
  • 2.jpg


#8 kovalevap

kovalevap

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 342 сообщений

Отправлено 24 Июнь 2012 - 17:58

Просмотр сообщенияzhenpoplen (24 Июнь 2012 - 12:52) писал:

2. При получении письма все равно не указывается новое созданное поле( контактный телефон), а только присылается телефон в "тексте письма", так же как при отправке сообщения указанном выше в п. 1 моих вопросов. Соответственно как это поправить?
Именно так и должно быть. Доп. поля присоединяются к тексту письма.

Чтобы в поле текста не появлялся весь текст - можно скрыть это поле, а добавить еще одно textarea, как дополноительное.

#9 zhenpoplen

zhenpoplen

    Пользователь

  • Пользователи
  • PipPip
  • 21 сообщений

Отправлено 25 Июнь 2012 - 00:37

Просмотр сообщенияkovalevap (24 Июнь 2012 - 17:58) писал:

Именно так и должно быть. Доп. поля присоединяются к тексту письма.

Чтобы в поле текста не появлялся весь текст - можно скрыть это поле, а добавить еще одно textarea, как дополноительное.
Я думаю что возможно сделать так что бы контактный телефон, например, при получении письма был не во всей каше, а стоял отдельно...

#10 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 209 сообщений

Отправлено 25 Июнь 2012 - 18:48

Цитата

1. При отправке сообщенний(при нажатии кнопки "Отправить" в поле "Текст сообщения" автоматически вносится информация из контактных данных, указанных выше. Вопрос - как это исправить что бы в этом поле был только текст сообщения.
2. При получении письма все равно не указывается новое созданное поле( контактный телефон), а только присылается телефон в "тексте письма", так же как при отправке сообщения указанном выше в п. 1 моих вопросов. Соответственно как это поправить?

Этого сделать нельзя, так как происходит склейка полей.

Как вариант для первого вопроса - это скрытие формы во время отправки.

<form method="post" action="{FEEDBACK_URL}" class="fastOrderForm" enctype="multipart/form-data" onsubmit="javascript:
$('#feedback_message').val($('#feedback_message').val() +
'Имя:' + $('#feedback_name').val() +
';Почта:' + $('#feedback_еmail').val() +
';Телефон:' + $('#feedback_tel').val() +
';сообщение:' + $('#message').val());">


меняем на

<form method="post" action="{FEEDBACK_URL}" class="fastOrderForm" enctype="multipart/form-data" onsubmit="javascript:
$(this).hide();$(this).after('Идет отправка формы. Пожалуйста, подождите...');$('#feedback_message').val($('#feedback_message').val() +
'Имя:' + $('#feedback_name').val() +
';Почта:' + $('#feedback_еmail').val() +
';Телефон:' + $('#feedback_tel').val() +
';сообщение:' + $('#message').val());">


#11 zhenpoplen

zhenpoplen

    Пользователь

  • Пользователи
  • PipPip
  • 21 сообщений

Отправлено 25 Июнь 2012 - 19:50

Просмотр сообщенияVaccina (25 Июнь 2012 - 18:48) писал:

Этого сделать нельзя, так как происходит склейка полей.

Как вариант для первого вопроса - это скрытие формы во время отправки.

<form method="post" action="{FEEDBACK_URL}" class="fastOrderForm" enctype="multipart/form-data" onsubmit="javascript:
$('#feedback_message').val($('#feedback_message').val() +
'Имя:' + $('#feedback_name').val() +
';Почта:' + $('#feedback_еmail').val() +
';Телефон:' + $('#feedback_tel').val() +
';сообщение:' + $('#message').val());">


меняем на

<form method="post" action="{FEEDBACK_URL}" class="fastOrderForm" enctype="multipart/form-data" onsubmit="javascript:
$(this).hide();$(this).after('Идет отправка формы. Пожалуйста, подождите...');$('#feedback_message').val($('#feedback_message').val() +
'Имя:' + $('#feedback_name').val() +
';Почта:' + $('#feedback_еmail').val() +
';Телефон:' + $('#feedback_tel').val() +
';сообщение:' + $('#message').val());">



Всем спасибо. В принципе можно и так работать...Но все же непонятно почему нельзя дополнительное поле сделать основным без склейки полей...немного странно, ведь ка кто основные поля ( Представьтесь, пожалуйста и Email для обратной связи) стали основными. В чем же тогда заключается сложность сделать еще одно или несколько основных полей?,

#12 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 209 сообщений

Отправлено 26 Июнь 2012 - 22:59

Сложность тут в том, что изменения необходимо делать на стороне сервера - а это могут только разработчики.

#13 zhenpoplen

zhenpoplen

    Пользователь

  • Пользователи
  • PipPip
  • 21 сообщений

Отправлено 26 Июнь 2012 - 23:33

Просмотр сообщенияVaccina (26 Июнь 2012 - 22:59) писал:

Сложность тут в том, что изменения необходимо делать на стороне сервера - а это могут только разработчики.
Ясно. Спасибо.

#14 pasiki

pasiki

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 231 сообщений
  • ГородСанкт-Петербург

Отправлено 25 Октябрь 2012 - 12:20

Достаточно давно уже сделал у себя, как описано в теме:
http://forum.storela...pic/256-кнопки/

А именно - для некоторых товаров кнопка покупки заменяется на кнопку заказа, и при этом ведет на форму обратной связи. Как это работает можно посмотреть например здесь:
http://telesam.net/g...ерами?from=NmU3
нажав на кнопку "Сделать заказ".

Т.к. на используемой форме обратной связи я использую дополнительные поля, то воспользовался методом склейки полей, который описан в данной теме.
Вот мой скрипт:
<form method="post" action="{FEEDBACK_URL}" class="feedbackForm" enctype="multipart/form-data" onsubmit="javascript:
	$(this).hide();$(this).after('Идет отправка формы. Пожалуйста, подождите...');$('#feedback_message').val(
	'Имя: ' + $('#feedback_name').val() +
	'; Телефон: ' + $('#feedback_tel').val() +
	'; Почта: ' + $('#feedback_еmail').val() +
	'; Cообщение: ' + $('#feedback_message').val());">

Все работает. Но сегодня случайно заметил одну проблему с этим кодом. Если не заполнить какое-либо из первых полей, то при отправке все зависает. Видим надпись 'Идет отправка формы. Пожалуйста, подождите...', а дальше ничего не происходит.

Вопрос: как это можно побороть? На обязательности заполнения полей можно не настаивать. Просто нужно отправить то, что было заполнено пользователем.
Спасибо!

#15 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 209 сообщений

Отправлено 26 Октябрь 2012 - 13:18

Вам необходимо удалить в форме все классы "required" для задает обязательность заполнения некоторых полей. Проблема в том что при нажатии кнопки(если обязательные поля не заполнены - класс "required") форма скрывается, но отправиться данным мешает проверка формы, если убрать $(this).hide(); то будет видно что обязательные поля под светились, и просят заполнить их.

#16 bergamota

bergamota

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 166 сообщений

Отправлено 15 Апрель 2014 - 09:54

Здравствуйте! Можно ли как-то автозаполнять поле "e-mail" и скрывать его от посетителей?
Задача - не заставлять заполнять это поле.

И еще один вопрос: добавила просто 2 доп.поля в форму. Форма отправляется, в письме данные из этих полей прописаны в пункте "Дополнительная информация". У вас что-то изменилось со времен создания этой темы и теперь склейку полей делать не нужно?

#17 bergamota

bergamota

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 166 сообщений

Отправлено 15 Апрель 2014 - 15:10

Решение первого вопроса нашла сама:
1. для строчки с e-mail задала style="display:none;"
2. в самом поле заменила значение value на e-mail нашего магазина

Теперь e-mail всегда заполнен, а поле никто не видит

#18 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 209 сообщений

Отправлено 16 Апрель 2014 - 05:53

Цитата

В форме обратной связи можно писать дополнительные поля, они будут приходить на почту. Например если надо добавить к форме обратной связи телефон, то будет достаточно добавить поле:
<input name="form[phone]" value="{FORM_PHONE}" />

На почту в письме придёт вот такая информация:
Текст сообщения:
Тестовый текст

Дополнительная информация:
phone: +7123123123

Можно указывать и название на русском, например так:
<input name="form[Телефон]" value="{FORM_ТЕЛЕФОН}" />

в этом случае на почту придёт текст:
Дополнительная информация:
Телефон: +7123123123

Прошу обратить внимание, на то, что переменные с пробелами не поддерживаются, например {FORM_ТЕЛЕФОН КЛИЕНТА МАГАЗИНА} не обрабатываются шаблонизатором. Иными словами поле
<input name="form[Телефон клиента]" value="{FORM_ТЕЛЕФОН КЛИЕНТА}" />
будет при загрузке формы в поле вставлять этот текст по умолчанию:
{FORM_ТЕЛЕФОН КЛИЕНТА}

для того чтобы писать длинные тексты названий с пробелами используйте вместо пробелов символы нижнего подчёркивания, вот эти: _





Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных