Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как правильно избавиться от обязательного поля "ИМЯ" в модуле


Recommended Posts

Помогите разобраться и сделать поле "ИМЯ" не обязательным для заполнения, есть файл

feedback.php

и сам вывод шаблона

 

{% if callback_active == 1 %}
                <li><a href="#modalFeedbackHeader" id="button_feedback" data-toggle="modal"><i class="fa fa-volume-control-phone"></i> <span class="hidden-xs hidden-sm hidden-md">{{ text_button_callback }}</span></a></li>
                {% endif %}
                {% if callback_active == 1 %}
                <div class="modal fade" id="modalFeedbackHeader" tabindex="-1" role="dialog" aria-labelledby="modalFeedbackHeaderLabel" aria-hidden="true">
                  <div class="modal-dialog" role="document">
                    <div class="modal-content">
                      <div class="modal-body">
                        <div style="display:inline-block; width: 100%; text-align:right;">
                          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                            <span aria-hidden="true">&times;</span>
                          </button>
                        </div>
                        <form class="form-horizontal" id="form-feedback-header">
                          <div class="form-group required">
                            <div class="col-sm-12">
                              <label class="control-label" for="input-name">{{ entry_name }}</label>
                              <input type="text" name="name" value="{{ name_callback }}" id="input-name" class="form-control" />
                            </div>
                            <div class="col-sm-12">
                              <label class="control-label" for="input-phone">{{ entry_phone }}</label>
                              <input type="text" name="phone" value="{{ phone_callback }}" id="input-phone" class="form-control" />
                            </div>
                          </div>
                        </form>
                        <button type="button" id="button_send_feedback_header" data-loading-text="{{ text_loading }}"  class="btn btn-primary">{{ text_send }}</button>
                      </div>
                    </div>
                  </div>
                </div>
                <script>
                  $('#button_send_feedback_header').on('click', function () {
                    $.ajax({
                      url: 'index.php?route=common/header/write',
                      type: 'post',
                      dataType: 'json',
                      data: $("#form-feedback-header").serialize(),
                      beforeSend: function () {
                        $('#button_send_feedback_header').button('loading');
                      },
                      complete: function () {
                        $('#button_send_feedback_header').button('reset');
                      },
                      success: function (json) {
                        $('.alert-success, .alert-danger').remove();
                        if (json['error']) {
                          $('#form-feedback-header').after('<div class="alert alert-danger" style="margin:20px 0;"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + '</div>');
                        }
                        if (json['success']) {
                          $('#form-feedback-header').after('<div class="alert alert-success" style="margin:20px 0;"><i class="fa fa-check-circle"></i> ' + json['success'] + '</div>');
                          $('input[name=\'name\']').val('');
                          $('input[name=\'phone\']').val('');
                        }
                      }
                    });
                  });
                </script>
                {% endif %}

 

я пытался убрать выражение в php :

 

удалил:

$data['error_name'] =  $this->language->get('error_name');
if ((utf8_strlen($this->request->post['name']) < 3) || (utf8_strlen($this->request->post['name']) > 25)) {
                $json['error'] = $data['error_name'];
            }

но он все равно не пропускает

 

потом удалил из шаблона это :

 

 <div class="col-sm-12">
                              <label class="control-label" for="input-name">{{ entry_name }}</label>
                              <input type="text" name="name" value="{{ name_callback }}" id="input-name" class="form-control" />
                            </div>

 

Тоже эффекта ноль, подскажите, что я упускаю? 

feedback.php

Змінено користувачем AlexTurner
Надіслати
Поділитися на інших сайтах


Убрав, это:

if ((utf8_strlen($this->request->post['name']) < 3) || (utf8_strlen($this->request->post['name']) > 25)) {
  $json['error'] = $data['error_name'];
}

Проверка на имя уберется.

 

Возможно вы хотите убрать проверку не в том месте. В этом модуле две разновидности вызова модального окна: в хидере и в самом блоке с вопросом и обратной связи. В каком варианте нужно убрать?

Надіслати
Поділитися на інших сайтах

44 минуты назад, AlexTurner сказал:

<div class="form-group required">

у вас как бы все поля формы объявлены "обязательные". задайте required для полей отдельно

Надіслати
Поділитися на інших сайтах

6 часов назад, bulldozer323 сказал:

Убрав, это:


if ((utf8_strlen($this->request->post['name']) < 3) || (utf8_strlen($this->request->post['name']) > 25)) {
  $json['error'] = $data['error_name'];
}

Проверка на имя уберется.

 

Возможно вы хотите убрать проверку не в том месте. В этом модуле две разновидности вызова модального окна: в хидере и в самом блоке с вопросом и обратной связи. В каком варианте нужно убрать?

 

Именно в хидере, я убрал это и поменял поле required

теперь это выглядит вот так :

 

<form class="form-horizontal" id="form-feedback-header">
                          <div class="form-group">
                            <div class="col-sm-12">
                              <label class="control-label" for="input-name">{{ entry_name }}</label>
                              <input type="text" name="name" value="{{ name_callback }}" id="input-name" class="form-control" />
                            </div>
                            </div>
                            <div class="form-group required">
                            <div class="col-sm-12">
                              <label class="control-label" for="input-phone">{{ entry_phone }}</label>
                              <input type="text" name="phone" value="{{ phone_callback }}" id="input-phone" class="form-control" />
                            </div>
                          </div>
                        </form>

 

Я разделил поля forn-group, убрал required у поля с именем, а телефон оставил прежним

 

Но после нажатия на отправку - ничего не происходит, кеш и все почистил, просто не нажимается кнопка, словно он все еще проверяет и что-то еще не сделано

Надіслати
Поділитися на інших сайтах


1 час назад, AlexTurner сказал:

 

Именно в хидере, я убрал это и поменял поле required

теперь это выглядит вот так :

 


<form class="form-horizontal" id="form-feedback-header">
                          <div class="form-group">
                            <div class="col-sm-12">
                              <label class="control-label" for="input-name">{{ entry_name }}</label>
                              <input type="text" name="name" value="{{ name_callback }}" id="input-name" class="form-control" />
                            </div>
                            </div>
                            <div class="form-group required">
                            <div class="col-sm-12">
                              <label class="control-label" for="input-phone">{{ entry_phone }}</label>
                              <input type="text" name="phone" value="{{ phone_callback }}" id="input-phone" class="form-control" />
                            </div>
                          </div>
                        </form>

 

 

Если речь идёт про хидер, сделайте тоже самое в модификаторы который идёт в комплекте с модулем

Надіслати
Поділитися на інших сайтах

Итак, вот что я сделал : файле feedback.php

Я закомментировал строку 

/*if ((utf8_strlen($this->request->post['name']) < 3) || (utf8_strlen($this->request->post['name']) > 25)) {
                $json['error'] = $data['error_name'];
            }*/

и удалил эту же строку в модификаторе

 

так как у меня не выводилось поле само, я самостоятельно вписал его в header.twig, а именно :

 

{% if callback_active == 1 %}
                <div class="modal fade" id="modalFeedbackHeader" tabindex="-1" role="dialog" aria-labelledby="modalFeedbackHeaderLabel" aria-hidden="true">
                  <div class="modal-dialog" role="document">
                    <div class="modal-content">
                      <div class="modal-body">
                        <div style="display:inline-block; width: 100%; text-align:right;">
                          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                            <span aria-hidden="true">&times;</span>
                          </button>
                        </div>
                        <form class="form-horizontal" id="form-feedback-header">
                          <div class="form-group">
                            <div class="col-sm-12">
                              <label class="control-label" for="input-name">{{ entry_name }}</label>
                              <input type="text" name="name" value="{{ name_callback }}" id="input-name" class="form-control" />
                            </div>
                            </div>
                            <div class="form-group required">
                            <div class="col-sm-12">
                              <label class="control-label" for="input-phone">{{ entry_phone }}</label>
                              <input type="text" name="phone" value="{{ phone_callback }}" id="input-phone" class="form-control" />
                            </div>
                          </div>
                        </form>
                        <button type="button" id="button_send_feedback_header" data-loading-text="{{ text_loading }}"  class="btn btn-primary">{{ text_send }}</button>
                      </div>
                    </div>
                  </div>
                </div>
                <script>
                  $('#button_send_feedback_header').on('click', function () {
                    $.ajax({
                      url: 'index.php?route=common/header/write',
                      type: 'post',
                      dataType: 'json',
                      data: $("#form-feedback-header").serialize(),
                      beforeSend: function () {
                        $('#button_send_feedback_header').button('loading');
                      },
                      complete: function () {
                        $('#button_send_feedback_header').button('reset');
                      },
                      success: function (json) {
                        $('.alert-success, .alert-danger').remove();
                        if (json['error']) {
                          $('#form-feedback-header').after('<div class="alert alert-danger" style="margin:20px 0;"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + '</div>');
                        }
                        if (json['success']) {
                          $('#form-feedback-header').after('<div class="alert alert-success" style="margin:20px 0;"><i class="fa fa-check-circle"></i> ' + json['success'] + '</div>');
                          $('input[name=\'name\']').val('');
                          $('input[name=\'phone\']').val('');
                        }
                      }
                    });
                  });
                </script>
                {% endif %}

Поменяв при этом поле form-group required на form-group

 

Сделал тоже самое в модификаторе на всякий случай, обновил все. Но кнопка не срабатывает( однако если туда вписать имя, то он срабатывает

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.