質問 > フロント機能 > 商品登録画面で新規作成したチェックボックスの内容を商品登録するとdbのカラムにArrayという文字が格納される。 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
andez |
投稿日時: 2014/7/2 11:47
対応状況: −−−
|
常連 登録日: 2013/5/24 居住地: 投稿: 35 |
商品登録画面で新規作成したチェックボックスの内容を商品登録するとdbのカラムにArrayという文字が格納される。 いつもお世話になっております。どうかお教いただけませんでしょうか。
商品登録画面で新規項目(品質をチェックボックスで選ぶ)を作りたいと思い、dbのmtb_statusをまねてmtb_qualityなるものを新規作成しました(作成は成功)。 Product.tplのチェックボックスでチェックした品質(複数選択可)はconfirm.tplでチェックした分だけの複数の品質の状態名が表示されます。 そして”この内容で登録する”ボタンを押してもエラーメッセージが出ないようにまではしたのですが、dtb_productsに新規に作成したqualityというカラムにはconfirm.tplで表示されていた品質の状態名が格納されず、代わりに、Arrayという文字が格納されてしまいます。 たぶん、lfRegistProductの$sqlval[‘Quality’] = $arrList[‘Quality’]; だけでは不十分なのかなとは思いますが、 何をどうすれば宜しいか、どなたかアイデアをいただけませんでしょうか。(以下は新規記述内容です。) >Product.tpl <th>品質</th> <td> <!--{html_checkboxes name="Quality’" options=$arrQuality selected=$arrForm.Quality separator=' '}--> </td> >Confirm.tpl <tr> <th>品質</span></th> <td> <!--{section name=cnt loop=$arrForm.Quality}--> <!--{assign var=key value=$arrForm. Quality[cnt]}--> <!--{$arrQuality [$key]|sfTrim}--><br /> <!--{/section}--> </td> </tr> >LC_Page_Admin_Products_Product.php Page を初期化する. function init() { $this->arrQuality = $masterData->getMasterData('mtb_quality'); パラメーター情報の初期化 $objFormParam->addParam('品質', 'Quality', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); function lfRegistProduct $checkArray = array(‘Quality’, // INSERTする値を作成する。 $sqlval[‘Quality’] = $arrList[‘Quality’]; EC-CUBE 2.12.5 (データベース) MySQL5.0.77 (WEBサーバ) apache2 (OS) Windows XP (PHP) 5.0.22 |
sumida |
投稿日時: 2014/7/2 12:33
対応状況: −−−
|
仙人 登録日: 2013/2/10 居住地: 広島県呉市ときどき瀬戸内海 投稿: 641 |
Re: 商品登録画面で新規作成したチェックボックスの内容を商品登録するとdbのカラムにArrayという文字が格納される。 品質が複数選択可能ということで、配列になっていると思うので、
implode関数を使って、配列要素を文字列にして、DBに格納し、 読み出したときに、explode関数を使って、配列に復元すれば良いのでは。 |
andez |
投稿日時: 2014/7/2 18:00
対応状況: −−−
|
常連 登録日: 2013/5/24 居住地: 投稿: 35 |
Re: 商品登録画面で新規作成したチェックボックスの内容を商品登録するとdbのカラムにArrayという文字が格納される。 Sumida様
アドバイスを頂きましてありがとうございます。 記述の仕方などが分からないでおりますが、とりあえず試した方法は、 LC_Page_Admin_Products_Product.phpのlfRegistProductで以下を追加 $sqlval['Quality'] = explode(",", $arrList[' Quality ']); Dtb_productsのカラムqualityには以前はNullだったものが以下のようなものが格納される。 a:1:{i:0;s:5:"Array";} これを例えば新着商品ブロックで抽出しようとする場合、そのphpファイルでどのような記述をすれば宜しいのでしょうか。(ここまでの方向性なども含めてアドバイス頂けませんでしょうか。) |
andez |
投稿日時: 2014/7/11 1:02
対応状況: 解決済
|
常連 登録日: 2013/5/24 居住地: 投稿: 35 |
Re: 商品登録画面で新規作成したチェックボックスの内容を商品登録するとdbのカラムにArrayという文字が格納される。 難しく考えていたようです。
とりあえず、他の方法で解決しました。 大変お騒がせいたしました。 Sumida様 アドバイスありがとうございます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |