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

Добавих две полета във формата за контакт.

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="/bglocalhost/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