Перейти к содержанию
grachew

[Решено] Отзывы :: Ошибка "Название отзыва должно быть от 3 до 25 символов!"

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

Приветствую!

Поставлена ocStore v1.5.3.1 + демо материалы.

При добавлении отзыва выдает: "Название отзыва должно быть от 3 до 25 символов!"

В текстовое поле вставлял текст на 1к символов. - результат тот же..

Что посоветуете?

post-23800-0-57172700-1351527798_thumb.jpg

Поделиться сообщением


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

ocstore_v1.5.3.1/index.php?route=product/product&product_id=40

товар iPhone

имя - Владимир

отзыв - описание товара с вкладки "описание".

оценка - 1 (плохо)

результат:

Спасибо за ваш отзыв. Он поступил администратору для проверки на спам и вскоре будет опубликован.

Поделиться сообщением


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

ТС, вы решили проблему? У меня тоже просто такая беда....

Поделиться сообщением


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

Название отзыва должно быть от 3 до 25 символов! МНЕ ТАК ПИШЕТ ?

Где копать ?

Поделиться сообщением


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

Такая же проблема решение есть ?

Поделиться сообщением


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

смотрите в сторону дополнений с формами связи

Поделиться сообщением


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

Проблема может быть в том, что на той же странице есть HTML-элемент <INPUT> с именем «name». Например, если у вас есть форма связи — вроде заказать обратный звонок и т.д. В той форме может быть такой input-элемент. Так как он на странице находятся раньше input-элемента с отзывом, значение берётся именно оттуда. А так как он пустой, выскакивает ошибка.

 

Как решение, можно модифицировать шаблон продукта:

 

Файл catalog/view/theme/default/template/product/product.tpl

<input type="text" name="review_name" value="" />
data: 'name=' + encodeURIComponent($('input[name=\'review_name\']').val()) + '&text=' + encodeURIComponent($('textarea[name=\'text\']').val()) + '&rating=' + encodeURIComponent($('input[name=\'rating\']:checked').val() ? $('input[name=\'rating\']:checked').val() : '') + '&captcha=' + encodeURIComponent($('input[name=\'captcha\']').val()),
  • +1 3

Поделиться сообщением


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

вообще-то это обязанность авторов сторонних дополнений - не использовать зарезервированные opencart name/id для элементов.

Поделиться сообщением


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

Afwollis, с другой стороны, это архитектурная проблема опенкарта. Я бы вообще обернул эти инпуты в <form> и потом в data подставлял бы не километровую строку с выбором каждого значения, а простое выражение, вроде:

data: $('#review_form').serialize(),

Такой вариант гораздо проще поддерживать, так как в случае изменений в форме отправки отзыва не придётся из километровой строки делать двухкилометровую (да и вообще не нужно будет ничего с этим куском кода делать). К тому же в этом случае вообще будет неважно, какой сторонний модуль какие имена использует, так как сериализуются данные из конкретной формы, а не собираются со всей страницы.

Поделиться сообщением


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

да действительно у меня была та же проблема, конфликт переменных name из форму заказа обратного звонка, решается заменой названия переменной в форме обратного звонка к примеру на namecallback

Поделиться сообщением


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

Afwollis, с другой стороны, это архитектурная проблема опенкарта. Я бы вообще обернул эти инпуты в <form> и потом в data подставлял бы не километровую строку с выбором каждого значения, а простое выражение, вроде:

data: $('#review_form').serialize(),

Такой вариант гораздо проще поддерживать, так как в случае изменений в форме отправки отзыва не придётся из километровой строки делать двухкилометровую (да и вообще не нужно будет ничего с этим куском кода делать). К тому же в этом случае вообще будет неважно, какой сторонний модуль какие имена использует, так как сериализуются данные из конкретной формы, а не собираются со всей страницы.

 

не понял где найти эту строчку или хотя бы оригинал чтобы модифицировать  

data: $('#review_form').serialize(),

Поделиться сообщением


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

да действительно у меня была та же проблема, конфликт переменных name из форму заказа обратного звонка, решается заменой названия переменной в форме обратного звонка к примеру на namecallback

спасибо  , помогли очень

Поделиться сообщением


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

Огромное спасибо за подсказку! Точно там была проблема. Теперь всё работает.

Поделиться сообщением


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

 

Проблема может быть в том, что на той же странице есть HTML-элемент <INPUT> с именем «name». Например, если у вас есть форма связи — вроде заказать обратный звонок и т.д. В той форме может быть такой input-элемент. Так как он на странице находятся раньше input-элемента с отзывом, значение берётся именно оттуда. А так как он пустой, выскакивает ошибка.

 

Как решение, можно модифицировать шаблон продукта:

 

Файл catalog/view/theme/default/template/product/product.tpl

<input type="text" name="review_name" value="" />
data: 'name=' + encodeURIComponent($('input[name=\'review_name\']').val()) + '&text=' + encodeURIComponent($('textarea[name=\'text\']').val()) + '&rating=' + encodeURIComponent($('input[name=\'rating\']:checked').val() ? $('input[name=\'rating\']:checked').val() : '') + '&captcha=' + encodeURIComponent($('input[name=\'captcha\']').val()),

 

Спасибо. Сработало.

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.