0

連絡先フォームにいくつかのフィールドを追加して、顧客が書き込み時に車両の製造年とモデルを指定できるようにしようとしています。

Magento インストールを 1.4.3 から 1.7.0.1 にアップグレードしました。以前の連絡フォームはハックの仕事でしたが、今回は正しい方法で機能させようとしています. <input type="text" size="15" value="" id="model_ext" name="bike_model_ext" class="required-entry input-text">全体を読んで、テンプレートの form.phtml に追加してから、管理者のトランザクション電子メール テンプレートに追加してみました{{var data.model_ext}}。しかし、それはうまくいきません。テキストを操作して、バックエンドのテンプレートが正しいことを確認しました。また、要素が変更されたときに要素が表示されるため、form.phtml が正しいこともわかっています。

それで、連絡フォームを処理するコントローラーをオーバーロードしました。コントローラーがそれを処理していることを確認しました(それには が付属していましたecho "it works"; die();)そして、そこで追加のフォーム要素名の POST データを探していますが、ここでもデータへのアクセスに問題があります。ネットを見て、私はこれを試しました:

            $comment = $this->getRequest()->getPost('comment');
            $extras=Array( "year","make","model","model_ext" );
            foreach($extras as $field)
                    $comment .= "\n$field:\t".$this->getRequest()->getPost($field);
            $this->getRequest()->setParam('comment', $comment);
            parent::postAction();

しかし、繰り返しますが、私の変数が存在しないようです。ここでも、コードが実行されていることがわかります。コードに問題があると、連絡先フォームがクラッシュしてエラー メッセージが表示されるからです。

私は午前中にもう一度やりますが、ここで経験豊富な誰かが私を助けてくれる簡単なものがあることを願っています.

編集: 回答: ID を使用して変数を入力していましたが、代わりに名前である必要があります。

4

1 に答える 1

1

この修正に興味のある方への回答です。

フォームによって生成される $_POST および $_GET の値は、ID ではなく名前を使用します。

この状況では、model_ext の代わりに bike_model_ext を使用する必要があります。

敬具、

于 2013-02-14T21:24:32.147 に答える