バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > カテゴリにチェックフラグを設置する

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
taiton
投稿日時: 2013/3/4 13:33
対応状況: −−−
半人前
登録日: 2012/2/10
居住地:
投稿: 11
カテゴリにチェックフラグを設置する
スレッドの階層が深くなり、一部は解決したのもあるので内容をまとめて、
もう一度新規でスレッドを投稿いたします。

カテゴリ登録の際にチェックボックスをチェックするとDBに「1」、チェックボックスを外すと「0」(デフォルト値は「0」)が登録されるようにしようとしています。

現在、以下のように設定しましたが、
if($sqlval['test_flg']){
の判定部分がうまくいっていないのか、
すべて
else
の値をDBに登録してしまうようで困っています。

お分かりになる方がいましたら教えてください。
よろしくお願いします。


DBにテーブルを追加
dtb_category に test_flg を追加
データ型「smallint」、デフォルト値「0」

category.tplにフォームを追加
<input type="checkbox" id="test" name="test" value="1" <!--{if $arrForm.test_flg}-->checked="checked"<!--{/if}-->><label for="test">テスト</label>


LC_Page_Admin_Products_Category_EX.phpに下記を追加。

=================
function process()
=================
$col    = "category_name, category_title, category_info, info_flg, level,  test_flg";

$this->arrForm['test_flg']    = $arrRet[0]['test_flg'];


=================
function lfInsertCat()
=================
if($sqlval['test_flg']){
	$sqlval['test_flg'] = "1";
}else{
	$sqlval['test_flg'] = "0";
}


=================
function lfUpdateCat()
=================
if($sqlval['test_flg']){
	$sqlval['test_flg'] = "1";
}else{
	$sqlval['test_flg'] = "0";
}


=================
function lfInitParam()
=================
$this->objFormParam->addParam("テストフラグ", "test_flg", INT_LEN, "n", array("MAX_LENGTH_CHECK"));



上記の状態でテストするとチェックボックスにチェックを入れても外しても「0」が登録されてしまいます。

EC-CUBE: 2.4.4
DBサーバ: PostgreSQL 9.1.2
PHP: 5.3.8
shutta
投稿日時: 2013/3/4 14:47
対応状況: −−−
仙人
登録日: 2010/2/4
居住地: 関西
投稿: 835
Re: カテゴリにチェックフラグを設置する
引用:

現在、以下のように設定しましたが、
if($sqlval['test_flg']){
の判定部分がうまくいっていないのか、
すべて
else
の値をDBに登録してしまうようで困っています。


なんとなくのアタリなんですが、


if ($this->arrForm['test_flg']) {


とすればよいんじゃないでしょうか?

(ざっとコードを読んでのアタリなので外していたらすみません。)


----------------

リゾート会員権(エクシブ等)の売買・仲介

taiton
投稿日時: 2013/3/4 21:42
対応状況: −−−
半人前
登録日: 2012/2/10
居住地:
投稿: 11
Re: カテゴリにチェックフラグを設置する
shutta様

ありがとうございます。
if ($this->arrForm['test_flg']) {

のようにしてみたところ、やはりelseの値をDBに登録してしまうようです。。
sumida
投稿日時: 2013/3/4 22:28
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: カテゴリにチェックフラグを設置する
inputタグのid,nameが、「test_flg」でなくてもいいの?
taiton
投稿日時: 2013/3/4 22:45
対応状況: −−−
半人前
登録日: 2012/2/10
居住地:
投稿: 11
Re: カテゴリにチェックフラグを設置する
sumida様

ありがとうございます。

nameの値をEC-CUBEの方で認識して、対象となるチェックボックスの位置を判断しているのでしょうか?
この辺り、理解が足りず。。

フォーム側のid,nameを「test_flg」にしても結果は同じでした。。
sumida
投稿日時: 2013/3/5 21:29
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: カテゴリにチェックフラグを設置する
inputタグには、「test_flg」を使いますが、

$this->objFormParam->addParam("テストフラグ", "test_flg", INT_LEN, "n", array("MAX_LENGTH_CHECK"));

を使っているのだから、単純に

if ($this->objFormParam->getValue('test_flg')) {

を使用してはどうでしょう。
taiton
投稿日時: 2013/3/6 4:50
対応状況: −−−
半人前
登録日: 2012/2/10
居住地:
投稿: 11
Re: カテゴリにチェックフラグを設置する
sumida様さまさま

if ($this->objFormParam->getValue('test_flg')) {

を使うことでいけました!
ありがとうございます!!!!!

本当にどうもありがとうございました!
大変助かりました!!

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1655
8
red
1570
9
mcontact
1306
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.