Получение имени и кода продукта в контактной форме

Я добавил два поля в контактную форму.

Product Name:
Product Code:

У меня есть кнопка предварительного заказа на странице продукта, поэтому для всех продуктов с нулевым количеством эта кнопка будет включена. Когда пользователь нажмет эту кнопку, он будет перенаправлен на контактную форму.

<a href="http://localhost/store/index.php?route=information/contact"><button>Pre-Order</button></a>

Теперь, как мне автоматически заполнить название продукта и код продукта, введенные в контактную форму, когда пользователь нажимает кнопку «Предварительный заказ» на странице продукта?

Пример сценария:

Клиент просматривает продукт Материнская плата Lenovo с кодом продукта: LV032, Но он обнаруживает, что этого продукта нет в наличии и Предварительный заказ — это единственный доступный вариант. Поэтому он нажимает кнопку «Предварительный заказ», затем клиент перенаправляется на контактную форму с полями названия продукта и кода продукта, уже заполненными названием и кодом продукта, который клиент хочет предварительно заказать.

ИЗМЕНИТЬ:

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


person demic0de    schedule 12.09.2013    source источник


Ответы (2)


я не совсем согласен с тем, что вы пытаетесь сделать, вот что, я думаю, вы хотите сделать

<a href="localhost/application/perorder.php?id=123&name=thinkpad">Pre Order</a>

теперь perorder.php должен выглядеть так

$id = $_GET['id']; $name = $_GET['name'];
<input type="text" value="<?php echo $name;?>" />
person avinashizhere    schedule 12.09.2013
comment
Спасибо за ответ. Однако я заработал, используя сеансы. Я напишу это как ответ, чтобы вы могли видеть. - person demic0de; 12.09.2013
comment
да, сеанс используется только для такого рода закупочных заданий, на самом деле проблема заключалась в том, что вы использовали ссылку, и я точно не знаю, что с этим делать, поэтому я использовал для этого GET :) - person avinashizhere; 12.09.2013
comment
Да, извините за ссылку. Во всяком случае, я опубликовал свое рабочее решение. Я не знаю, правильно ли это сделать. Спасибо - person demic0de; 12.09.2013

Я заработал, сделав это.

Я добавил эти две строки в файл product.php, расположенный в controller/product/product.php

$_SESSION['prodname'] = $product_info['name'];
$_SESSION['prodcode'] = $product_info['model'];

Теперь в контроллер контактной формы contact.php, расположенный в controller/information/contact.php, я добавил этот код.

if (isset($this->request->post['prodname'])) {
            $this->data['prodname'] = $this->request->post['prodname'];
        } else {
            if(isset($_SESSION['prodname'])) {
            $this->data['prodname'] = $_SESSION['prodname'];
            } else {
            $this->data['prodname'] = '';
            }
        }

        if (isset($this->request->post['prodcode'])) {
            $this->data['prodcode'] = $this->request->post['prodcode'];
        } else {
            if(isset($_SESSION['prodcode'])){
            $this->data['prodcode'] = $_SESSION['prodcode'];
            } else {
            $this->data['prodcode'] = '';
            }
        }

Затем в функции успеха внутри контроллера contact.php я добавил эту строку перед $this->response->setOutput($this->render());

unset($_SESSION['prodname']);
unset($_SESSION['prodcode']);       
$this->response->setOutput($this->render()); 

Теперь это работает. Я не знаю, правильный ли это способ сделать это. Если у кого-то есть лучший ответ, пожалуйста, пролейте мне свет. Спасибо.

person demic0de    schedule 12.09.2013
comment
Это не очень удачное решение. Просто потому, что когда вы устанавливаете эти данные для сеанса, тогда в любое время я просто открываю обычную контактную форму после того, как я посетил какой-либо продукт, у меня будет заполнен идентификатор продукта и название продукта, даже если я не хочу делать предварительный заказ... Использование идентификатор продукта и название продукта в части GET ссылки, как предложенный ответ от @avinashizhere, являются гораздо более лучшим и удобным способом решения Вашей проблемы. - person shadyyx; 16.09.2013