Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


AlexTurner
 Погделиться

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

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

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

 

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

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


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

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

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

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