1

お問い合わせフォームに2つのフィールドを追加しました。

Product Name:
Product Code:

製品ページに予約注文ボタンがあるので、数量が 0 のすべての製品でこのボタンが有効になります。ユーザーがこのボタンをクリックすると、連絡先フォームにリダイレクトされます。

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

ユーザーが製品ページの予約注文ボタンをクリックしたときに、連絡先フォームに製品名と製品コードを自動入力するにはどうすればよいですか?

サンプル シナリオ:

顧客は、製品コード: LV032 の製品 Lenovo マザーボードを閲覧していますが、この製品が在庫切れであり、利用可能なオプションは予約注文のみであることがわかりました。そこで、彼が予約注文ボタンをクリックすると、顧客は連絡先フォームにリダイレクトされ、製品名と製品コードのフィールドには、顧客が予約注文したい製品の名前とコードがすでに入力されています。

編集:

製品ページのセッションを使用してから、連絡先フォームのセッションを使用して、実用的なソリューションを得ました。私が正しいことをしているかどうかアドバイスしてください。

4

2 に答える 2

0

これを行うことで機能しました。

にあるproduct.phpにこの2行を追加しました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()); 

今それは働いています。これが正しい方法かどうかはわかりません。誰かがより良い答えを持っている場合は、私に光を当ててください。ありがとう。

于 2013-09-12T05:55:34.497 に答える