Как отправить некоторые переменные в файл с помощью opencart?

У меня возникли проблемы с отправкой переменных в opencart. То, что я пытаюсь сделать, – захватить две переменные из текстовых полей на странице checkout / login, называемой именем и адресом. Я хочу, чтобы значения, введенные в эти два поля, были сохранены при нажатии кнопки продолжения, а затем отправлены на страницу checkout / guest, где я хочу выделить эти переменные. Вот что я сделал:

Вот мой файл checkout.tpl, где я пытаюсь отправить имя и адресные переменные на страницу checkout / guest, а именно метод получения:

$('#button-account').live('click', function() { var name = $('#name').val(); var address = $('#address').val(); $.post('index.php?route=checkout/guest/receive', { name: name, address: address}); 

});

Затем в файле контроллера guest.php я получаю опубликованные переменные и сохраняю их в двух переменных, называемых именем и адресом:

 public function receive() { $name = $this->request->post['name']; $address = $this->request->post['address']; } 

Затем в файле guest.tpl я повторяю их:

 <?php echo $name; echo $address; ?> 

Когда я загружаю гостевую страницу, появляется следующее сообщение об ошибке: Примечание: Неопределенная переменная: имя в C: \ xampp \ htdocs \ catalog \ view \ theme \ default \ template \ checkout \ guest.tpl в строке 13 Примечание: Неопределенная переменная : адрес в C: \ xampp \ htdocs \ catalog \ view \ theme \ default \ template \ checkout \ guest.tpl в строке 14.

Если кто-нибудь скажет мне, как заставить этот код работать, я был бы очень благодарен. Из того, что я могу сказать, переменные либо не отправляются в нужное место, либо я не получаю их правильно на странице guest.php.

Прежде всего – я не понимаю, почему вы хотели бы опубликовать какое-либо name и address странице checkout/login поскольку таких полей по умолчанию нет, если вы их не добавили.

Во всяком случае, в таком случае я бы продолжил так: отправьте метод receive() через AJAX, как и вы. Здесь я бы сохранил переменные в сеансе:

 public function receive() { $this->session->data['guest_name'] = $this->request->post['name']; $this->session->data['guest_address'] = $this->request->post['address']; } 

Теперь в catalog/controller/checkout/guest.php при методе index проверьте эти переменные сеанса, и если они установлены, сохраните значение в массиве $this->data для представления шаблону:

 if(isset($this->session->data['guest_name'])) { // it is enough to check only for one variable and only if it is set $this->data['guest_name'] = $this->session->data['guest_name']; $this->data['guest_address'] = $this->session->data['guest_address']; } 

После этого вы можете просто отбросить эти значения в своем шаблоне (все еще проверяя, существует ли):

 <?php if(isset($guest_name)) { ?> <div><?php echo $guest_name . ' - ' . $guest_address; ?></div> <?php } ?> 

Теперь вы должны быть сделаны, избегая любых undefined variable уведомлений undefined variable