バージョン選択

フォーラム

メニュー

オンライン状況

50 人のユーザが現在オンラインです。 (36 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 50
もっと...

サイト内検索

質問 > フロント機能 > 【2.11.5】お客様情報にプルダウン選択を追加したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
soujyu
投稿日時: 2013/11/16 11:29
対応状況: −−−
新米
登録日: 2013/11/16
居住地:
投稿: 4
【2.11.5】お客様情報にプルダウン選択を追加したい
2.11.5を使用して作っています

お客様情報を入力してもらう画面で「職業」と同じようなプルダウンを出して選択してもらえる項目を追加したく奮闘しております

データベースに「mtb_know」というテーブルを「職業」で使用されている「mtb_job」コピーして作り、選択肢を作りました

そのあとtemplates/default/shoppingの中のnonmember_input.tplを編集し表示させたのですが、プルダウンが職業のように現れてくれませんでした
プログラムの中にある
html_options options=$arrJob selected=$arrForm[$key].value
ここをいじらないといけないと思い
arrJob を arrKnow に変更してみたりもしたのですが、やはりプルダウンがでませんでした

このプルダウンが出るようにするにはどのようにすればいいのでしょうか?

本を見ながら勉強はしているのですが、始めたばかりなので少し丁寧にご教授いただけると助かります
お手数をおかけいたしますがよろしくお願いいたします
DELIGHT
投稿日時: 2013/11/16 11:50
対応状況: −−−
仙人
登録日: 2010/2/3
居住地: 熊本県・九州・長野県・関東甲信越
投稿: 572
Re: 【2.11.5】お客様情報にプルダウン選択を追加したい
各ページのページクラス (LC_Page_Shopping_○○等)のinit()内で、
$this->arrJob = $objMasterData->getMasterData('mtb_job');

という部分があると思います。
(変数名など少し違うかもしれません)

同様に
$this->arrKnow= $objMasterData->getMasterData('mtb_know');

とすることで、テンプレート(tpl)に渡す変数をセットすることができます。

但しそれだけではデータベースに登録できるようにはならないので、
周辺の処理を一つ一つ追って解読し、knowも登録できるよう処理を追加する必要があります。


----------------
+ DAISY inc. -------------------- +
EC-CUBE構築・カスタマイズサービス
EC・WEB構築などお気軽にご相談ください。

デイジー株式会社
http://daisy.link/

soujyu
投稿日時: 2013/11/16 13:06
対応状況: −−−
新米
登録日: 2013/11/16
居住地:
投稿: 4
Re: 【2.11.5】お客様情報にプルダウン選択を追加したい
返信ありがとうございます

ご教授いただいた内容を修正してみました

LC_Page_shopping の中に
$this->arrknow = $masterData->getMasterData("mtb_Know");
を追加しました
また、同ページに
$objFormParam->addParam("認知元", "order_know", INT_LEN, 'n', array("MAX_LENGTH_CHECK", "NUM_CHECK"));
こちらも必要かと思い追記しました

と同時に nonmember_input.tpl に

<th>認知元</th>
<td>
<!--{assign var=key value="order_know"}-->
<!--{if $arrErr[$key]}-->
<!--{assign var=err value="background-color: `$smarty.const.ERR_COLOR`"}-->
<!--{/if}-->
<select name="<!--{$key}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->">
<option value="">選択して下さい</option>
<!--{html_options options=$arrKnow selected=$arrForm[$key].value}-->
</select>
</td>

を追加しました
ですがお客様情報入力ページにはボックスは現れるのですが、やはりプルダウンはでませんでした。。。。
なにかデータベース等にも問題があるのでしょうか・・・

お忙しいところ申し訳ございませんが、よろしくお願いいたします
DELIGHT
投稿日時: 2013/11/16 13:23
対応状況: −−−
仙人
登録日: 2010/2/3
居住地: 熊本県・九州・長野県・関東甲信越
投稿: 572
Re: 【2.11.5】お客様情報にプルダウン選択を追加したい
コードの大文字小文字が間違っています。


----------------
+ DAISY inc. -------------------- +
EC-CUBE構築・カスタマイズサービス
EC・WEB構築などお気軽にご相談ください。

デイジー株式会社
http://daisy.link/

soujyu
投稿日時: 2013/11/16 13:33
対応状況: −−−
新米
登録日: 2013/11/16
居住地:
投稿: 4
Re: 【2.11.5】お客様情報にプルダウン選択を追加したい
大変失礼いたしました
大文字小文字を修正したのですが、やはりプルダウンが表示されませんでした。
DELIGHT
投稿日時: 2013/11/16 13:40
対応状況: −−−
仙人
登録日: 2010/2/3
居住地: 熊本県・九州・長野県・関東甲信越
投稿: 572
Re: 【2.11.5】お客様情報にプルダウン選択を追加したい
$this->arrknow
$this->arrKnow

mtb_Know
mtb_know

両方修正されましたか?



修正済みでしたら、マスタデータ取得後に

SC_Utils::sfPrintR($this->arrKnow);
//又は
var_dump($this->arrKnow);

と追記して変数の中身を確認して下さい。
もし空でしたら、なんらかの原因でマスタデータの読み込みが出来ていません。

キャッシュがいたずらをしている可能性もあるので、

$this->arrKnow= $objMasterData->getMasterData('mtb_know');
//を、
$this->arrKnow= $objMasterData->getDbMasterData('mtb_know');

に修正してみてください。
(前者はキャッシュデータが存在する場合はキャッシュデータから、
そうでない場合はDBから読み込むという関数です。
後者はキャッシュデータの有無にかかわらずDBから読み込む関数です。)


----------------
+ DAISY inc. -------------------- +
EC-CUBE構築・カスタマイズサービス
EC・WEB構築などお気軽にご相談ください。

デイジー株式会社
http://daisy.link/

soujyu
投稿日時: 2013/11/16 14:13
対応状況: −−−
新米
登録日: 2013/11/16
居住地:
投稿: 4
Re: 【2.11.5】お客様情報にプルダウン選択を追加したい
早いご返信ありがとうございます

大文字、小文字に関しましては両方ともに修正いたしました

var_dump($this->arrKnow);
のチェックをしましたがエラーが帰ってきてしまいました

キャッシュ対策も試みてみましたが、だめでした・・・

「職業」のものをコピーして編集しているので、そこで問題が起きてしまっているのでしょうか。。。
DELIGHT
投稿日時: 2013/11/16 14:32
対応状況: −−−
仙人
登録日: 2010/2/3
居住地: 熊本県・九州・長野県・関東甲信越
投稿: 572
Re: 【2.11.5】お客様情報にプルダウン選択を追加したい
エラー内容を貼っていただければ更にアドバイスができるかと存じます。


----------------
+ DAISY inc. -------------------- +
EC-CUBE構築・カスタマイズサービス
EC・WEB構築などお気軽にご相談ください。

デイジー株式会社
http://daisy.link/

kirin
投稿日時: 2015/1/20 14:31
対応状況: −−−
半人前
登録日: 2012/4/24
居住地:
投稿: 20
Re: 【2.11.5】お客様情報にプルダウン選択を追加したい
2.12.6なんですが、全く同じ状況なのでこちらに書き込みをさせて頂きました。
私が行ったものは下記の通りです

1、dtb_customer内に新たにテーブルを作成しました(以降,hoge1)条件は同じ階層内のjobと同じように作りました。

2、データベースの一階層目?に新たにmtbテーブルを作成しました(以降mtb_hoge2)条件はmtb_jobと同じように作りました。

3管理画面>システム設定>マスタデータ管理よりmtb_hoge2内に複数項目の値を追加しました。

4、data/Smarty/templates/default/frontparts/form_personal_input.tpl
内にjobと同じように下記を追加記述しました。
<tr>
<th>追加したい項目</th>
<td>
<!--{assign var=key1 value="`$prefix`hoge1"}-->
<!--{if $arrErr[$key1]}-->
<div class="attention"><!--{$arrErr[$key1]}--></div>
<!--{/if}-->
<select name="<!--{$key1}-->">
<option value="" selected="selected">選択してください</option>
<!--{html_options options=$arrhoge2 selected=$arrForm[$key1]}-->
</select>
</td>
</tr>

を追加しましたがmtb_hoge2内の値がプルダウンせず。

5、本スレッドに記載をヒントに
data/class/pages/shopping/LC_Page_Shopping.php
内に
$this->arrHoge2= $objMasterData->getMasterData('mtb_hoge2');

を記述しましたが、mtb_hoge2内の値がプルダウンしませんでした。

やはり2.11.5と2.12.6では記述先が違うのでしょうか?もしくはもっと記述しなくてはいけないんでしょうか?

必要な用途としては、新規会員様にだけ複数の中からお選び頂きプレゼントを差し上げようと思って構築しております。

従いまして新規会員登録のページにだけ反映出来ればと思っております。

バージョンが2.12.6なので新規スレッドを立てた方が良いのでしたら新規スレッドを立てますのでその辺の方も含めご教授頂ければと思います。
yuh
投稿日時: 2015/1/20 15:41
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 【2.11.5】お客様情報にプルダウン選択を追加したい
新規会員登録の場合はLC_Page_Entryではないですか?
LC_Page_Entryの
sfCustomerEntryParamの後にでも

$objFormParam->addParam('hoge', 'hoge1', INT_LEN, 'n', array('NUM_CHECK'));

みたいな感じで追加してみてください。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,959名です
総投稿数は110,019件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.