バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 商品登録画面で新規作成したチェックボックスの内容を商品登録すると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='&nbsp;&nbsp;'}-->
</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様
アドバイスありがとうございます。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は89,036名です
総投稿数は110,020件です

投稿数ランキング

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.