質問 > フロント機能 > 商品入力・確認画面のサブ情報箇所でkeyを使ってラジオボタンを機能させたい。 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
moment |
投稿日時: 2015/7/5 18:26
対応状況: −−−
|
常連 登録日: 2014/6/30 居住地: 投稿: 45 |
商品入力・確認画面のサブ情報箇所でkeyを使ってラジオボタンを機能させたい。 大変お世話になっております。どうか解決のヒントなどを頂けませんでしょうか。
一度同様の投稿質問をさせて頂きましたが横道にそれてしまいましたので恐縮ですが再度質問させて頂きく存じます。 管理者画面・商品登録・サブ情報登録画面で二者択一のラジオボタンを以下の設定にてkeyを使用してそれぞれ異なるラジオボタンがサブ情報の各箇所に表示されるように致しました。 :Templates/admin/products/product.tpl <!--{assign var=key value="completion_sub`$smarty.section.cnt.iteration`"}--> <!--{html_radios name="completion_sub[$key]" options=$arrCompletion_sub selected=$arrForm[$key] separator=' '}--> :Class/page/admin/products/LC_Page_Admin_Products_Product.php function init() { $this->arrCompletion_sub = $masterData->getMasterData('mtb_completion_sub'); ・・・} function lfInitFormParam(&$objFormParam, $arrPost) { for ($cnt = 1; $cnt <= PRODUCTSUB_MAX; $cnt++) { $objFormParam->addParam('completion_sub' . $cnt, 'completion_sub' . $cnt, STEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); ・・・} ・・・} しかしながら、商品登録画面の各サブ情報の箇所でそれぞれラジオボタンを選択して確認画面に推移した際に以下の設定でdbのmtb_completion_subに設定した名称を表示するべきところが何も表示されません。 confirm.tpl <!--{assign var=key value="completion_sub`$smarty.section.cnt.iteration`"}--> <!--{$arrCompletion_sub[$arrForm.completion_sub[$key]]}--> 確認画面の設定でどうゆう設定にすれば商品入力画面で選択されたもの(mtb_completion_subに設定した名称)が表示されるか何かご指導頂けませんでしょうか。 EC-CUBE:[2.13] PHP:[5.7] WEBサーバ:[Apache] データベース:[MySQL 6.03] |
tsuji |
投稿日時: 2015/7/6 10:34
対応状況: −−−
|
仙人 登録日: 2013/11/19 居住地: 投稿: 958 |
Re: 商品入力・確認画面のサブ情報箇所でkeyを使ってラジオボタンを機能させたい。 moment 様
実際に試してはいませんが、下記になるかと思います。 引用:
↓ 引用:
|
moment |
投稿日時: 2015/7/7 7:43
対応状況: −−−
|
常連 登録日: 2014/6/30 居住地: 投稿: 45 |
Re: 商品入力・確認画面のサブ情報箇所でkeyを使ってラジオボタンを機能させたい。 tsuji様
ご指導頂きまして本当に感謝いたします。 かなりの時間を費やしても解決できない問題でしたので解決案の記述を頂いた時、直感的にこの記述は機能すると思いました。 しかしながら未だに何も表示しない状態でございます。多分頂きました記述から多少の修正で機能(確認画面で名称を表示し、登録ボタンを押すことでdbに情報を入力する)すると考えております。 ありとあらゆることを試しておりますが、何か代替案等ございましたらご指導頂けませんでしょうか。(あるいは確認画面で何も表示しない場合どこの設定ミスが考えられますでしょうか。) |
tsuji |
投稿日時: 2015/7/7 10:26
対応状況: −−−
|
仙人 登録日: 2013/11/19 居住地: 投稿: 958 |
Re: 商品入力・確認画面のサブ情報箇所でkeyを使ってラジオボタンを機能させたい。 moment 様
では、一つずつ確認していくことをお勧めします。 1. POST値が入っているか 商品登録ページからデータをPOSTした際に該当の項目(completion_sub1など) に値が入っているか 2. $objFormParamに値が入っているか $objFormParamがPOST値を取り込んだ後、getValue等で該当の項目を指定し、 値が入っているか 3. $this->arrFormに値が入っているか $this->arrFormの該当の項目があり、値が入っているか 4. smartyで値を確認できるか smartyで該当の項目を指定し、値を取り出せるか (初めからradioを使うのではなく、そのまま表示して値を表示できるかを確かめます) 5. $arrCompletion_subに値が入っていること 6. 表示したいもの(radioなど)で表示ができるか 値が取り出せることを確認したら、その値でちゃんと値が表示できることを確認します
|
moment |
投稿日時: 2015/7/8 14:56
対応状況: −−−
|
常連 登録日: 2014/6/30 居住地: 投稿: 45 |
Re: 商品入力・確認画面のサブ情報箇所でkeyを使ってラジオボタンを機能させたい。 Tsuji様
ご多忙のなか恐縮でございます。ご指導頂きまして感謝致します。 頂きました解説のおかげで確認画面にて以下の設定で名称を表示することができました。(以下以外は名称を表示することができない様です。) <!--{assign var=key value=" completion_sub `$smarty.section.cnt.iteration`"}--> <!--{assign var= completion_sub value=$arrForm.completion_sub[$key]}--> <!--{$arrCompletion_sub[$completion_sub]}--> 最後の作業であるdbへの挿入なのですが、sub_titleを参考に以下の記述に行き着きました。sub_titleは同様の設定で機能しているにもかかわらず、以下の設定では上記のcompletion_subの定義に問題があるようで、例えば、dtb_products/completion_sub1に数字を代入すべきところが空欄になってしまいます。(数字があっても上書きする) :Class/page/admin/products/LC_Page_Admin_Products_Product.php for ($cnt = 1; $cnt <= PRODUCTSUB_MAX; $cnt++) { $sqlval['completion_sub'.$cnt] = $arrList['completion_sub'.$cnt]; ・ ・・ } ありとあらゆることを試しましたが、結論として“for ($cnt = 1; $cnt“ から始まる記述でサブ情報の各ラジオボタンの選択情報をそれぞれdbに挿入することは不可能なのではないかと 感じております。sub_titleとは違い、completion_subはmtb_completion_subから番号を抽出しなければいけない分$sqlvalの挿入文の設定に支障をきたすのではないかなと考えるからです。 可能であるとお考えになりますでしょうか。前回頂きました確認項目の内、本ケースではどのようにテストすれば宜しいか大変恐縮ですがご指導頂けませんでしょうか。 |
tsuji |
投稿日時: 2015/7/8 16:37
対応状況: −−−
|
仙人 登録日: 2013/11/19 居住地: 投稿: 958 |
Re: 商品入力・確認画面のサブ情報箇所でkeyを使ってラジオボタンを機能させたい。 moment 様
確認画面で表示できていることを踏まえますと、DBに登録できない というのは考えにくく思っております。 最終的に$sqlvalのデータをDBに登録する前に中身が入っているかどうか を確認する必要があります。 1. $arrList['completion_sub'.$cnt]にちゃんと値が入っているか 2. $sqlvalに値が入っているか 1で値が入っていなければ、その前の$arrFormに値が入っているか を調べる必要があると思います。 もし入っていなければ、confirm.tplでhiddenで値が表示されているかを 調べる必要があります。 また、下記にて値が入っているのであれば、$arrList['completion_sub'.$cnt]ではなく $arrList['completion_sub']['completion_sub'.$cnt]とするならば、 値が入るのかもしれません。 引用:
|
moment |
投稿日時: 2015/7/9 15:31
対応状況: −−−
|
常連 登録日: 2014/6/30 居住地: 投稿: 45 |
Re: 商品入力・確認画面のサブ情報箇所でkeyを使ってラジオボタンを機能させたい。 Tsuji様
ご多忙の中ご教授いただきまして本当に感謝いたします。もう少しのところまで来ているような感じが致します。長くて申し訳ございません。 整理をさせて頂きますと、 確認ページであるconfirm.tplでは以下の記述でmtb_completion_subから商品入力画面の”それぞれ異なるラジオボタン”で選択した名称を"それぞれのサブ情報箇所"で抽出し表示しております。 <!--{assign var=key value="completion_sub`$smarty.section.cnt.iteration`"}--> <!--{assign var=completion_sub value=$arrForm.completion_sub[$key]}--> ?<!--{$arrCompletion_sub[$completion_sub]}--> 因みに?を<!--{$completion_sub}-->に変更すると数字(商品入力画面で選択したラジオボタンの番号:mtb_completion_subのid)だけを表示します。 その確認画面から、今までのphpの記述でdb登録するとdtb_products/completion_sub(x)のカラムに空欄が上書きされていたものが、頂きました以下の記述に変更したところ、0が上書きされるようになりました。 $arrList['completion_sub']['completion_sub'.$cnt] Confirm.tplでcompletion_subを数字として認識しているにもかかわらず、 phpファイルではcompletion_subを数字として認識していないのではないかと思っております。 また、試しにphpファイルを以下のように、サブ情報箇所でなく商品登録画面でサブ情報の上部にある商品の主な情報に設置したラジオボタンcompletion_n(よってkeyを使わない)にすると、商品入力画面で選択したラジオボタンの番号が“全て”のサブ情報カラムであるdtb_products/completion_sub(x)に格納されます。(商品登録画面で確認すると全てのサブ情報の”同じ”ラジオボタンが選択された状態になります。) $arrList['completion_n']['completion_sub'.$cnt] $arrList['completion_n']には値が入っているけれども$arrList['completion_sub']には値が入っていないということになるかと思います。 よって、LC_Page_Admin_Products_Product.php内のcompletion_subに関する設定に問題があるのではとあれこれと試しておりますが、見つけることができません。 何かお分かりになりますでしょうか。 |
moment |
投稿日時: 2015/7/16 16:46
対応状況: 解決済
|
常連 登録日: 2014/6/30 居住地: 投稿: 45 |
Re: 商品入力・確認画面のサブ情報箇所でkeyを使ってラジオボタンを機能させたい。 Tsuji様
複雑な質問に真摯にご対応頂きまして大変恐縮でございます。かなり問題点が鮮明になって参りました。とりあえず何とかやってみようと思っております。お時間を頂きまして本当に感謝いたします。ありがとうございます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |