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


Связь С Администрации На Странице Товара.


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

#1 Max123

Max123

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

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

Отправлено 18 Февраль 2014 - 08:31

Здравствуйте, мне необходимо, чтобы на странице товара, после поле описание товара, была форма для отправки файла. Я взял код формы "связь с администрацией" и вставил в код "товар" . Визуально всё получилось, однако когда вводишь данные и нажимаешь кнопку отправить, сообщение не отправляется, а отправляет на страницу "контакты" и пишет сообщение "введите email". Мой аккаунт 193307

#2 Alexey11

Alexey11

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

  • Модератоpы
  • 1 057 сообщений
  • ГородНижний новгород

Отправлено 18 Февраль 2014 - 17:39

На данный момент можно решить данную проблему только одним способом. Вывести ссылку на страницу с формой обратной связи в карточке товара. Вывести данную форму , чтобы она работала на других страницах к сожалению не получиться.

#3 Max123

Max123

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

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

Отправлено 19 Февраль 2014 - 17:18

Alexey11 на сколько я понял, реализовать такую возможность для вас ни составит особого труда. Там переписать надо обработчик события нажатия кнопки "отправить", чтобы он не был привязан к странице feedback. Для моего вида бизнеса очень важно, чтобы клиент мог отправить файл прямо со страницы товара. Может вы всё таки пойдёте мне на встречу и сделаете эту функцию доступной!??

#4 Сake

Сake

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

  • Модератоpы
  • 5 979 сообщений

Отправлено 20 Февраль 2014 - 04:03

Можно реализовать автоматическую подгрузку формы обратной связи и вставка её на страницу. Дополнительно можно скрыть поля и заполнить их любыми значениями в случае если вам необходимо от пользователя только прикрепление файла. Для реализации подобного механизма достаточно в шаблон "Товар" ставить строку

<div class="feedback-insert"></div>

данную строку вам необходимо вставить в то место в шаблоне, где вы хотите чтобы форма обратной связи отображалась. После этого необходимо в конец файла main.js добавить код

$(function() {
var feedback = {
		 hash: [],
		 get: function(callback) {
				 $.get('/feedback', function(content) {
						 feedback.hash = /ElementById\("(.*)"\).*ibute\(.*, "(.*)"\)/.exec(content);
						 callback.call(this, $(content).find('form.feedbackForm'));
				 });
		 },
		 setLazy: function(form, callback) {
				 form.submit(function() {
				 var data = new FormData();
				 var serialize = form.serializeArray();
				 var file = form.find('input[type="file"]');
				 for(var i in serialize) {
					 data.append(serialize[i].name, serialize[i].value);
				 }
				 data.append(file.attr('name'), file.get(0).files[0]);
				 $.post('/feedback', data, function(content) {
					 callback.call(this, $(content).find('form.feedbackForm .infoblock'));
				 });
				 return(false);
				 });
		 },
		 filter: function(form) {
				 form.find('#feedback_name').val('product').closest('tr').hide();
				 form.find('#feedback_еmail').val('try@catch.org').closest('tr').hide();
				 form.find('#feedback_message').val('attach product file').closest('tr').hide();
				 form.find('#'+feedback.hash[1]).val(feedback.hash[2]);
		 }
};
if($('.feedback-insert').length) {
		 feedback.get(function(form) {
				 feedback.filter(form);
				 $('.feedback-insert').html(form);
				 feedback.setLazy(form, function(status) {
						 $('.feedback-insert').html(status);
				 });
		 });
}
});

Метод filter в данном коде фильтрует содержимое формы, а именно (для данного случая) скрывает поля feedback_name, feedback_еmail, feedback_message и заполняет их значениями по умолчанию (для успешной отправки формы). Отправка содержимого формы будет происходить без перезагрузки страницы. (#feedback)

#5 Max123

Max123

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

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

Отправлено 20 Февраль 2014 - 11:39


Сake, визуально всё получилось и даже при нажатии на кнопку отправить выводит сообщение " сообщение успешно отправлено" Однако на почту ничего не приходит, Что ещё нужно сделать чтобы работало?


#6 Сake

Сake

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

  • Модератоpы
  • 5 979 сообщений

Отправлено 21 Февраль 2014 - 00:50

Код в сообщении выше обновлен. Попробуйте обновить ваш код.

#7 Max123

Max123

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

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

Отправлено 21 Февраль 2014 - 11:58


Сake, теперь сообщение отправляется, но приходит пустое сообщение. При этом если убрать фильтрацию полей, то  Имя, емаил и текст сообщения приходит, а файл нет.  


#8 Сake

Сake

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

  • Модератоpы
  • 5 979 сообщений

Отправлено 22 Февраль 2014 - 00:49

В фильтрации полей присутствует обязательный код, который убирать нельзя. Это строка

form.find('#'+feedback.hash[1]).val(feedback.hash[2]);

Остальные строки можно убрать, но поля должны быть предварительно заполнены, так как например если не заполнить поле email, то сообщение отправлено не будет.

#9 Max123

Max123

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

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

Отправлено 22 Февраль 2014 - 12:58


Сake, я не убирал эту строчку. Дело в том что сообщение отправляется, но приходит без прикреплённого файла.


#10 Сake

Сake

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

  • Модератоpы
  • 5 979 сообщений

Отправлено 25 Февраль 2014 - 04:51

Код в сообщении выше обновлен. Попробуйте обновить ваш код.

#11 Max123

Max123

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

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

Отправлено 27 Февраль 2014 - 20:38

Просмотр сообщенияСake (25 Февраль 2014 - 04:51) писал:

Код в сообщении выше обновлен. Попробуйте обновить ваш код.
Обновил, но файл так и не приходит.((

#12 Сake

Сake

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

  • Модератоpы
  • 5 979 сообщений

Отправлено 28 Февраль 2014 - 01:19

Пожалуйста, приведите пример использования подобной формы на вашем сайте, а так же сообщите в каком браузере вы проверяете работоспособность кода? Дополнительно, попробуйте очистить кеш в вашем браузере.

#13 Max123

Max123

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

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

Отправлено 28 Февраль 2014 - 23:57

Просмотр сообщенияСake (28 Февраль 2014 - 01:19) писал:

Пожалуйста, приведите пример использования подобной формы на вашем сайте, а так же сообщите в каком браузере вы проверяете работоспособность кода? Дополнительно, попробуйте очистить кеш в вашем браузере.
Почистил кеш,  пока работает. Пользуюсь Chrome

#14 Max123

Max123

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

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

Отправлено 01 Март 2014 - 09:10

Cake, мне ещё бы хотелось, чтобы в поле "текст сообщения", автоматически передавалась информация об артикуле товара. Возможно ли это реализовать?

#15 Сake

Сake

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

  • Модератоpы
  • 5 979 сообщений

Отправлено 06 Март 2014 - 01:30

Для этого можно строку (в файле main.js)

var serialize = form.serializeArray();

заменить на

form.find('#feedback_message').val(form.find('#feedback_message').val() + ' ' + $.trim($('.headline p[itemprop="identifier"]').text()));
var serialize = form.serializeArray();


#16 Max123

Max123

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

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

Отправлено 13 Март 2014 - 19:32

Просмотр сообщенияСake (06 Март 2014 - 01:30) писал:

Для этого можно строку (в файле main.js)

var serialize = form.serializeArray();

заменить на

form.find('#feedback_message').val(form.find('#feedback_message').val() + ' ' + $.trim($('.headline p[itemprop="identifier"]').text()));
var serialize = form.serializeArray();
Артикул отправляется, но только первой выбранной модификации. Можно-ли реализовать, чтобы отправлялся артикул выбранной модификации товара?

#17 Сake

Сake

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

  • Модератоpы
  • 5 979 сообщений

Отправлено 14 Март 2014 - 04:26

У вас вероятно при смене модификации не меняется артикул на странице товара. Для исправления данной ошибки - найдите в шаблоне "Товар" следующий код

<!-- Артикул, если указан -->
	  <p class="fnt10n" {% IFNOT GOODS_MOD_ART_NUMBER %}style="display:none;"{% ELSE %}itemprop="identifier"{% ENDIF %}>
		Артикул: {GOODS_MOD_ART_NUMBER}
	  </p>

и замените его на

<!-- Артикул, если указан -->
	  <p class="fnt10n goodsDataMainModificationArtNumber" {% IFNOT GOODS_MOD_ART_NUMBER %}style="display:none;"{% ELSE %}itemprop="identifier"{% ENDIF %}>
		Артикул: <span>{GOODS_MOD_ART_NUMBER}</span>
	  </p>


#18 Acum56

Acum56

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

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

Отправлено 14 Март 2014 - 09:17

Очень интересная задумка - но у меня форма выглядит следующим Образом (Только выберете файл и отправьте)
Можно ли добавить поле E-mail для обратной связи и поле для ввода сообщения
Изображение
На почту пришло сообщение вида:



Здравствуйте!
На сайте rembuittehnika.ru через форму обратной связи 14.03.2014 10:11:04 Вам было отправлено сообщение.
Краткие данные пользователя:
Имя: product <try@catch.org>
IP Адрес: 79.122.197.206
User agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36
Текст сообщения:
attach product file




Изображениеодин файл101 КБ


Изображение


#19 support 2.0

support 2.0

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

  • Модераторы
  • 4 950 сообщений

Отправлено 14 Март 2014 - 19:40

Просмотр сообщенияAcum56 (14 Март 2014 - 09:17) писал:

Очень интересная задумка - но у меня форма выглядит следующим Образом (Только выберете файл и отправьте)
Можно ли добавить поле E-mail для обратной связи и поле для ввода сообщения
Изображение
На почту пришло сообщение вида:



Здравствуйте!
На сайте rembuittehnika.ru через форму обратной связи 14.03.2014 10:11:04 Вам было отправлено сообщение.
Краткие данные пользователя:
Имя: product <try@catch.org>
IP Адрес: 79.122.197.206
User agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36
Текст сообщения:
attach product file




Изображениеодин файл101 КБ


Изображение

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

#20 Max123

Max123

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

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

Отправлено 17 Март 2014 - 12:37

Просмотр сообщенияСake (14 Март 2014 - 04:26) писал:

У вас вероятно при смене модификации не меняется артикул на странице товара. Для исправления данной ошибки - найдите в шаблоне "Товар" следующий код

<!-- Артикул, если указан -->
	 <p class="fnt10n" {% IFNOT GOODS_MOD_ART_NUMBER %}style="display:none;"{% ELSE %}itemprop="identifier"{% ENDIF %}>
	 Артикул: {GOODS_MOD_ART_NUMBER}
	 </p>

и замените его на

<!-- Артикул, если указан -->
	 <p class="fnt10n goodsDataMainModificationArtNumber" {% IFNOT GOODS_MOD_ART_NUMBER %}style="display:none;"{% ELSE %}itemprop="identifier"{% ENDIF %}>
	 Артикул: <span>{GOODS_MOD_ART_NUMBER}</span>
	 </p>
Благодарю...работает как надо...




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

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