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

Получение значения input


Wyachik2

Recommended Posts

Добрый день! Пытаюсь изменить одну из форм оплат, а точнее необходимо добавить туда поля для заполнения и после вывести их в письмо о успешном заказе.
Эта строка находится в tpl-файле: <input type="text" name="nameUr" value="<?php echo $nameUr; ?>" placeholder="Наименование Юр. лица" id="input-payment-nameUr" class="form-control" />. Через нее и собираюсь получать данные в письмо.

После чего пытаюсь получить значения через сессии:
if (isset($this->session->data['bank_transfer']['nameUr'])) {
   $data['nameUr'] = $this->session->data['bank_transfer']['nameUr'];
} else {
   $data['nameUr'] = ' ';
}

И вывожу через: $comment .= $this->language->get('nameUr');
Но в письмо приходит только название переменной (nameUr), может кто сталкивался с подобным или знает как получить данные? Буду очень благодарен.

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


11 минут назад, Wyachik2 сказал:

И вывожу через: $comment .= $this->language->get('nameUr');

Дак вы и выводите только название переменной из текстового файла. 

Если $data['nameUr'] = $this->session->data['bank_transfer']['nameUr']; вы получаете в контроллере отправки письма, то во вью надо к нему обратиться как к $nameUr

 

$comment .= $this->language->get('nameUr'). ': ' .$nameUr;

Например так.

 

А, хотя я туплю) $comment у вас ведь тоже в контроллере получается заполняется, а не во вью. Тогда непонятно зачем данные из сессии передаёте в $data. )

 

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

5 минут назад, iglin сказал:

Дак вы и выводите только название переменной из текстового файла. 

Если $data['nameUr'] = $this->session->data['bank_transfer']['nameUr']; вы получаете в контроллере отправки письма, то во вью надо к нему обратиться как к $nameUr

 

$comment .= $this->language->get('nameUr'). ': ' .$nameUr;

Например так.

 

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

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


7 минут назад, iglin сказал:

А, хотя я туплю) $comment у вас ведь тоже в контроллере получается заполняется, а не во вью. Тогда непонятно зачем данные из сессии передаёте в $data. )

Для объявления и получения значений, так как без него выдает ошибку о неизвестной переменной

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


Только что, Wyachik2 сказал:

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

дак я уже понял, ниже дописал. $comment ведь у вас в контроллере тоже, так что нужно 

$comment .= $this->language->get('nameUr'). ': ' .$data['nameUr'];

ну и естественно $data['nameUr'] должно быть до заполнения $comment. Ну и желательно тогда не $data['nameUr'], а просто $nameUr, чтоб почём зря ещё раз во вью не передавать  )

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

Только что, Wyachik2 сказал:

Для объявления и получения значений, так как без него выдает ошибку о неизвестной переменной

if (isset($this->session->data['bank_transfer']['nameUr'])) {
   $nameUr = $this->session->data['bank_transfer']['nameUr'];
} else {
   $nameUr = ' ';
}

ну вот так правильней. 

А ниже уже $comment .= $this->language->get('nameUr'). ': ' .nameUr;

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

3 минуты назад, iglin сказал:

дак я уже понял, ниже дописал. $comment ведь у вас в контроллере тоже, так что нужно 

$comment .= $this->language->get('nameUr'). ': ' .$data['nameUr'];

ну и естественно $data['nameUr'] должно быть до заполнения $comment. Ну и желательно тогда не $data['nameUr'], а просто $nameUr, чтоб почём зря ещё раз во вью не передавать  )

Ничего не поменялось, попробовал заменить $data['nameUr'] на $nameUr начало ругаться на строку с input:
b>Notice</b>: Undefined variable: nameUr in <b>url/catalog/view/theme/default/template/extension/payment/bank_transfer.tpl</b> on line <b>9</b>

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


4 минуты назад, Wyachik2 сказал:

Ничего не поменялось, попробовал заменить $data['nameUr'] на $nameUr начало ругаться на строку с input:

А что ж вы молчали что это не контроллер отправки письма, а контроллер модуля оплаты. Это всё меняет. 

 

Надо глубже тогда разбираться как у вас это вписывается в сессию, в каком месте достаётся и доступно ли к моменту вызова addOrderHistory

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

4 минуты назад, iglin сказал:

А что ж вы молчали что это не контроллер отправки письма, а контроллер модуля оплаты. Это всё меняет. 

Я только придумал, как это реализовать через контроллер модуля оплаты, если проще через контроллер отправки письма, тогда сейчас посмотрю, может разберусь.
Хотя через модуль отправки письма мне не особо нужен, так как придется отдельно прописывать условия проверки выбранного способа оплаты, проще реализовать через модуль оплаты, так как там это уже присутствует.

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


5 минут назад, Wyachik2 сказал:

если проще через контроллер отправки письма, тогда сейчас посмотрю, может разберусь.

да нет, по сути не проще, так же. Если вы реализовали уже запись в сессию в контроллере оплаты, то к ней можно обратиться и в контроллере отправки письма. Так как отправляется оно через addOrderHistory (если мне память не изменяет), а к тому времени сессия ещё жива, чистится она на следующем шаге в success.

 

Но правильней конечно же всё здесь в модуле оплаты сделать.

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

10 минут назад, iglin сказал:

Надо глубже тогда разбираться как у вас это вписывается в сессию, в каком месте достаётся и доступно ли к моменту вызова addOrderHistory

sender-form.php вот исходный код формы заполнения
payment-modul.php а это самого модуля оплаты
Сессия в любом случае должна быть жива, так как выводится через нее информация о оплате и имя переменной

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


4 минуты назад, Wyachik2 сказал:

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

Ох и наворотили же вы там)) Сессия то конечно жива, но вы в неё ничего не вписываете это раз. Через get не передать данные формы (но вы и не пытались, указав ещё экшен для формы какой то левый) это два))

Ну а так по сути если придерживаться логики вашего модуля: 

1. через ajax нужно передать данные из вашей формы в confirm

2. в confirm получить эти данные, обработать и дописать в переменную $comment

 

Ну и сессия здесь совсем не нужна

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

6 минут назад, iglin сказал:

Ох и наворотили же вы там)) Сессия то конечно жива, но вы в неё ничего не вписываете это раз. Через get не передать данные формы (но вы и не пытались, указав ещё экшен для формы какой то левый) это два))

Ну а так по сути если придерживаться логики вашего модуля: 

1. через ajax нужно передать данные из вашей формы в confirm

2. в confirm получить эти данные, обработать и дописать в переменную $comment

 

Ну и сессия здесь совсем не нужна

Спасибо за подсказки, сейчас буду пробовать)

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


7 минут назад, Wyachik2 сказал:

Спасибо за подсказки, сейчас буду пробовать)

Если не получится, пишите в ЛС, за парочку "пива" помогу))

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

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

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

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

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

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

Вхід

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

Вхід зараз

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

Important Information

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