Кастомная Форма в opencart 3.x

Тема в разделе "Общие вопросы", создана пользователем Gagger, 12 дек 2017.

  1. Gagger

    Gagger Новичок

    Сообщения:
    27
    Симпатии:
    0
    А можно показать как нужно? Я был бы очень признателен!
     
  2. Gagger

    Gagger Новичок

    Сообщения:
    27
    Симпатии:
    0
    Все как всегда просто оказалось)))
    Спасибо за вашу помощь!
    PHP:
    $mail->setText($this->request->post['enquiry'] . $this->request->post['country']);
    Банально...однако))
     
  3. Gagger

    Gagger Новичок

    Сообщения:
    27
    Симпатии:
    0
    Последний вопрос возник:
    Нужно отсылать на мейл данные с чекбокса, но не смотря на
    PHP:
        if (isset($this->request->post['noprinter'])) {
                
    $data['noprinter'] = $this->request->post['noprinter'];
            } else {
                
    $data['noprinter'] = '';
            }
    Я получаю Notice: Undefined index: noprinter

    В чем может быть причина и как с этим бороться?
     
    Последнее редактирование: 13 дек 2017
  4. Ravilr

    Ravilr Специалист

    Сообщения:
    4.202
    Симпатии:
    1.448
    Внимательно посмотреть и подумать. Где получаете ошибку? Правильно ее выводите? Вконтроллере в нужном месте вставили ? итд? Или будем еще на 3 страницы переписываться )))))
     
  5. Gagger

    Gagger Новичок

    Сообщения:
    27
    Симпатии:
    0
    В том то и дело, не хотел сюда писать пока уже окончательно не уперся...
    Это твиг:
    HTML:
                <input type="checkbox" id="noprinter" name="noprinter" value="{{ noprinter }}">
               <label for="input-noprinter">{{ entry_noprinter }}</label>
    Это контроллер:
    PHP:
           if (isset($this->request->post['noprinter'])) {
                
    $data['noprinter'] = $this->request->post['noprinter'];
            } else {
               
    $data['noprinter'] = '';
            }
    В контроллере это находится там же где и все условия, не мучайте, подскажите что делать :)))
     
  6. Ravilr

    Ravilr Специалист

    Сообщения:
    4.202
    Симпатии:
    1.448
  7. Gagger

    Gagger Новичок

    Сообщения:
    27
    Симпатии:
    0
    Notice: Undefined index: noprinter in /home/web2testuser/public_html/opencart/catalog/controller/information/contact.php on line 23Warning: Cannot modify header information - headers already sent by (output started at /home/web2testuser/public_html/opencart/catalog/controller/startup/error.php:34) in /home/web2testuser/public_html/opencart/system/library/response.php on line 36
     
  8. Gagger

    Gagger Новичок

    Сообщения:
    27
    Симпатии:
    0
    Гляньте пожалуйста где здесь собака зарыта...
     
  9. Ravilr

    Ravilr Специалист

    Сообщения:
    4.202
    Симпатии:
    1.448
    Опять таки.. с формы не приходит в пост запросе ваш noprinter
    Почему не отправляется? Нужно смотреть по месту.
     
  10. Gagger

    Gagger Новичок

    Сообщения:
    27
    Симпатии:
    0
    В том то и дело, что в почту я получаю все данные, но получаю предупреждение что данные переменные не определены, определяю -
    PHP:
           if (isset($this->request->post['noprinter']) && !empty($this->request->post['noprinter'])) {
               
    $data['noprinter'] = $this->request->post['noprinter'];
           } else {
               
    $data['noprinter'] = '';
           }
    Продолжаю получать такое же предупреждение
     
  11. Ravilr

    Ravilr Специалист

    Сообщения:
    4.202
    Симпатии:
    1.448
    Код:
    !empty($this->request->post['noprinter']
    это убрать и все наладится.
     
  12. Gagger

    Gagger Новичок

    Сообщения:
    27
    Симпатии:
    0
    Если это убираю всеравно выдает ошибку.
    У меня есть подозрения в плане вот этой части
    HTML:
    <input type="checkbox" id="noprinter" name="noprinter" value="{{ noprinter }}">
    Может быть в твиге надо прописывать в value noprinter вместо переменной из языкового файла?
    PHP:
            if (isset($this->request->post['noprinter'])) {
               
    $data['noprinter'] = 'I don't have printer';
           } else {
               $data['
    noprinter'] = '';
           } 
    и добавить к твигу
    <input name="noprinter" value="0" type="hidden">
     
  13. Gagger

    Gagger Новичок

    Сообщения:
    27
    Симпатии:
    0
    В общем если чекбокс пустой и в value ничего нет и при этом есть проверка он выдает ошибку, версия со скрытым чекбоксом вообще блокирует вариант его выбрать...
     
  14. DiMoss

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

    Сообщения:
    879
    Симпатии:
    241
    А попробуйте без верхней запятой в слове don't. Она по-моему вызывает конфликт. Напишите do not.
     
  15. mars1an

    mars1an Специалист

    Сообщения:
    630
    Симпатии:
    517
    Апострофы экранировать надо.
    Код:
    I don\'t have printer
     
    DiMoss нравится это.
  16. Gagger

    Gagger Новичок

    Сообщения:
    27
    Симпатии:
    0
    Ребят это я просто тут так написал... код выглядит так:

    PHP:
            if (isset($this->request->post['noprinter'])) {
                
    $data['noprinter'] = $this->request->post['noprinter'];
            } else {
                
    $data['noprinter'] = '';
            }
    Отсюда с языкового файла вызываю:
    PHP:
    $_['entry_noprinter'] = "I don't have printer";
    А в твиге:
    HTML:
                <input type="checkbox" id="noprinter" name="noprinter" value="{{ entry_noprinter }}"> 
               <label for="input-noprinter">{{ entry_noprinter }}</label>
    Если чекбокс не отмечен получаю -
    Notice: Undefined index: noprinter in /home/web2testuser/public_html/opencart/catalog/controller/information/contact.php on line 23Warning: Cannot modify header information - headers already sent by (output started at /home/web2testuser/public_html/opencart/catalog/controller/startup/error.php:34) in /home/web2testuser/public_html/opencart/system/library/response.php on line 36

    Это код отправки тела имейла -
    PHP:
        $mail->setText($this->request->post['enquiry'] . $this->request->post['country'] . $this->request->post['zip'] . $this->request->post['link'] . $this->request->post['printer'] . $this->request->post['noprinter'] . $this->request->post['size'] . $this->request->post['hpress']);
     
  17. DiMoss

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

    Сообщения:
    879
    Симпатии:
    241
     
  18. Gagger

    Gagger Новичок

    Сообщения:
    27
    Симпатии:
    0
    В данном случае у меня стоят другие кавычки...но речь не об этом. Ошибка которую я получаю никак не связана с этим...
    П.С. Специально для душевного спокойствия проверил с заэкраненными апострофами...
     
  19. Ravilr

    Ravilr Специалист

    Сообщения:
    4.202
    Симпатии:
    1.448
    Если получаете Undefined index: noprinter
    Значит не находит индекс в массиве пост запроса, а именно нет там noprinter
    т.е нет там этого
    Код:
    $this->request->post['noprinter']
    На 23-й строке что у вас? Это?? Если да, то почему проходит проверка, на отсутствие.. непонятно.
    PHP:
    if (isset($this->request->post['noprinter'])) {
    Я уже неоднократно повторял что пользоваться нужно инспектором, что нужен демо сайт, нужно знать как у вас работает. А так кусками и догадками.. мы тут может еще 4 страницы написать.
     
  20. Gagger

    Gagger Новичок

    Сообщения:
    27
    Симпатии:
    0
    Так я же послал вам ссылку на демо сайт...
    http://test2.co.il/opencart/index.php?route=information/contact