バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 商品登録におけるドロップダウンリストの表示

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
linkline
投稿日時: 2009/5/5 16:31
対応状況: −−−
半人前
登録日: 2009/5/4
居住地:
投稿: 22
商品登録におけるドロップダウンリストの表示
新しく商品登録項目を追加し、その項目をセレクトボックスで選択した場合に、未入力時などのエラー表示画面で、選択したリストの値が解除されて未選択の状態にもどってしまいます。
Smarty の分野なのか Htmlの分野なのかわかりませんが、解決できなくて困っています。
初歩的なことで恐縮ですがお力添えをお願いいたします。
他の箇所を参考に見よう見まねで下記ような感じでやってみたのですが…

<select name="shift">
<option value="">選択してください</option>
<option value="FAT">FAT</option>
<option value="CAT">CAT</option>
<option value="6MT">6MT</option>
<option value="5MT">5MT</option>
<option value="4MT">4MT</option>
<!--{html_options options=$arrShift selected=$arrForm.shift}-->
</select>
seasoft
投稿日時: 2009/5/5 18:33
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品登録におけるドロップダウンリストの表示
> Smarty の分野なのか Htmlの分野なのかわかりませんが、解決できなくて困っています。

Smarty ですね。
http://www.smarty.net/manual/ja/language.function.html.options.php

通常、<!--{html_options}--> を使用する場合、<option> は書きません。EC-CUBE では
<option value="">選択してください</option>
などと書かれている箇所もありますが、本来これも望ましくないです。まぁ、その部分は放置しても良いと思いますが、少なくともご自信で <option> を書くのは避けたほうが良いと思います。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

linkline
投稿日時: 2009/5/6 11:00
対応状況: 確認中
半人前
登録日: 2009/5/4
居住地:
投稿: 22
Re: 商品登録におけるドロップダウンリストの表示
ありがとうございます。
教えていただいたページを拝見し、<option>を使わない方法でいろいろと試しております。
が、どこにいれればいいのかわからずにまったくうまくいきません。

$smarty->assign('myOptions', array(
FAT => 'FAT',
CAT => 'CAT',
6MT => '6MT',
5MT => '5MT',
4MT => '4MT')
);
$smarty->assign('mySelect', FAT);

をLC_Page_Admin_Products_Product_Exの適当な場所に書き

<!--{html_options name="shift" options=$arrShift selected=$arrForm.shift}-->

をProduct.tpl に書き入れました。

Parse error: parse error, expecting `T_FUNCTION' in C:\apachfriends\htdocs\eccube\data\class_extends\page_extends\admin\products\LC_Page_Admin_Products_Product_Ex.php on line 515

というエラーが出ます。

というか私はまったくPHPを理解していません。
恥を忍んでお尋ねしますがどこに書けばよいのでしょうか?
申し訳ありませんがよろしくお願いいたします。


ちなみに書き忘れてましたが環境は
+ Apache 2.2.11
+ MySQL 5.1.33 (Community Server)
+ PHP 5.2.9 + PEAR (PHP 4 wird nicht mehr unterst・zt)
+ ECCUBE2.34

です。
seasoft
投稿日時: 2009/5/6 11:31
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品登録におけるドロップダウンリストの表示
$smarty->assign('myOptions', array(
FAT => 'FAT',
CAT => 'CAT',
6MT => '6MT',
5MT => '5MT',
4MT => '4MT')
);
$smarty->assign('mySelect', FAT);

$smarty が怪しい予感がします。

しかし、EC-CUBE の場合、Page クラス自身を割り当てる設計なので、$this の配列要素として追加するほうが早いです。

(動作未確認)
$this->myOptions = array(
    'FAT' => 'FAT',
    'CAT' => 'CAT',
    '6MT' => '6MT',
    '5MT' => '5MT',
    '4MT' => '4MT'
);



$smarty->assign('mySelect', FAT);

これは構文エラーかと。「FAT」は文字列なら、「'」で囲わないと。


<!--{html_options name="shift" options=$arrShift selected=$arrForm.shift}-->

前記の流れからすると
<!--{html_options name="shift" options=$myOptions selected=$mySelect}-->
では?


> というか私はまったくPHPを理解していません。

ならば、PHP を勉強すれば良いと思います。EC-CUBE をご自身で運用するなら、必須です。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

linkline
投稿日時: 2009/5/6 14:38
対応状況: −−−
半人前
登録日: 2009/5/4
居住地:
投稿: 22
Re: 商品登録におけるドロップダウンリストの表示
詳細な回答ありがとうございます。

>ならば、PHP を勉強すれば良いと思います。EC-CUBE をご自身で運用するなら、必須です。

そうですよね…日本にいるのに日本語知らないようなもんですよね。
勉強しようとは思っているんですが、説明してある語句の意味がわからなくて、その意味を調べようと思ったらまたそれを説明してある意味がわからないんです。。。粘り強く調べていくほかはありませんよね。

ところで、

$this['myOptions'] = array(
FAT => 'FAT',
CAT => 'CAT',
6MT => '6MT',
5MT => '5MT',
4MT => '4MT'
);
$smarty->assign('mySelect', 'FAT');

でも同じエラーになります。
エラー表示の行数から
$this['myOptions'] = array(

がおかしいのは間違いないとおもいますが、この'myOptions'というのはどこかで何か定義づけのようなものをしておかないといけないんでしょうか?
myOptionsは参考のページにのっけてあったものをそのまま引用してしまったので。

たとえば前レスで間違って$arrShiftとか$arrForm とか書きましたがこれも他の箇所に$arrJobとか$arrFormとか書いてあったのをまねてみたのですが、意味自体はまったくわかっていません。

大変恐縮ですがよろしくお願いいたします。
seasoft
投稿日時: 2009/5/6 14:47
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品登録におけるドロップダウンリストの表示
> でも同じエラーになります。

構文を誤っていました。上記書き込みを修正しておきました。


> $smarty->assign('mySelect', 'FAT');

につきましては、クォートで囲う以外に、前者と同様の書き換えが必要です。
ご自身で解決されるほうが良いと思いますので、あえて詳細は書きません。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

seasoft
投稿日時: 2009/5/6 14:50
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品登録におけるドロップダウンリストの表示
FAT => 'FAT',
左側もクォートで囲う必要がありますね。
http://jp2.php.net/manual/ja/function.array.php

紛らわしいので、上記書き込みも修正しておきます。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

linkline
投稿日時: 2009/5/6 16:09
対応状況: −−−
半人前
登録日: 2009/5/4
居住地:
投稿: 22
Re: 商品登録におけるドロップダウンリストの表示

ためになるご指摘を頂き本当にありがとうございます。
書き込む位置が間違っていたのかもしれません。
書き込む位置を修正したところエラーは解消されました。

これまでLC_Page_Admin_Products_Product_Exの
/* 商品登録ページ表示用 */
という部分に書いていたのですが、
修正した位置は

/* 商品の登録 */
function lfRegistProduct($arrList) {
$objQuery = new SC_Query();
$objDb = new SC_Helper_DB_Ex();
$objQuery->begin();
の下に

$this['myOptions'] = array(
'FAT' => 'FAT',
'CAT' => 'CAT',
'6MT' => '6MT',
'5MT' => '5MT',
'4MT' => '4MT'
);
$this['mySelect'] = 'FAT';

と書き込みました。
が、今度はエラーは解消されたんですがドロップダウンリストの中身が表示されない状態になりました。

位置がこれで正しいのかもわかりませんし、$this['mySelect'] = 'FAT';が正しいのかどうかもわかりません。。。

seasoft
投稿日時: 2009/5/6 16:16
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品登録におけるドロップダウンリストの表示
位置は、少々微妙な線です。ソースを確認していないので断言はできませんが、当初の方が正しい方向性の気はします。

とりあえず、追記箇所は下記の通りが適切だと思います。

$this['****'] = ...

$this->**** = ...


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

linkline
投稿日時: 2009/5/6 16:31
対応状況: −−−
半人前
登録日: 2009/5/4
居住地:
投稿: 22
Re: 商品登録におけるドロップダウンリストの表示
ご教授ありがとうございます。
教えていただいたように変更し、元の位置に戻してみました。
やはりエラーになるんですが、
いつ変わったのか、エラーの内容が変わっているのに気づいていませんでした。

Fatal error: Cannot use object of type LC_Page_Admin_Products_Product_Ex as array in


との事です。

arrayを使うことができないということなのでしょうか?

(1) 2 3 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,953名です
総投稿数は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.