バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > イベント発生のタイミングについて

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
bitterice
投稿日時: 2011/7/26 11:43
対応状況: −−−
半人前
登録日: 2011/7/26
居住地:
投稿: 13
イベント発生のタイミングについて
最近eccubeをさわり始めた初心者です。

現在、商品詳細ページの動きを見ているのですが、
規格が2つある商品で規格1を選択すると、規格2のリストが
表示される様になりますが、どのタイミング(何処)で値の
セットが行われているのでしょうか?
habu
投稿日時: 2011/7/26 12:39
対応状況: −−−
長老
登録日: 2006/9/15
居住地:
投稿: 282
Re: イベント発生のタイミングについて
bitterice様

html/js/products.js の、
setClassCategories関数で行われています。

規格1を選択するとsetClassCategories関数が呼び出される様には、
同じファイルの以下の部分で設定されています。

      // 規格1選択時
      $('select[name=classcategory_id1]')
          .change(function() {
                      var $form = $(this).parents('form');
                      var product_id = $form.find('input[name=product_id]').val();
                      var $sele1 = $(this);
                      var $sele2 = $form.find('select[name=classcategory_id2]');
                      setClassCategories($form, product_id, $sele1, $sele2);
                  });


----------------
株式会社システムフレンド
羽生 賢太郎(Kentaro Habu)
改造専門店・EC-CUBE工房

bitterice
投稿日時: 2011/7/28 12:08
対応状況: 確認中
半人前
登録日: 2011/7/26
居住地:
投稿: 13
Re: イベント発生のタイミングについて
habu様

回答頂きありがとうございます。

products.jsを確認しました。

確かに、changeイベントで何かしていそうなのは確認できました。

が、detail.tpl,SC_Page_Products_Detail.phpを見ても理解できていないのですが、
どの記述をもって.changeイベントの発生により、.js側に処理が移るのでしょうか?
468
投稿日時: 2011/8/6 3:40
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: イベント発生のタイミングについて
こんばんわ。

商品詳細の規格2をセットする処理について、
私なりに理解している内容を説明させてください。

まず、規格2のデータですが、商品詳細ページを表示する際、
LC_Page_Products_Detail.php 134行目の処理で、
$this->tpl_javascriptに規格情報をセットしております。
続いて135行目で$this->tpl_javascriptにlnOnLoad関数(Javascript)のソースコードを追加します。
136行目で$this->tpl_onloadにonLoadイベント(Javascript)で実行するソースコードをセットします。
上記の変数は、site_frame.tplのheadタグ内に配置されるようになっております。
(PHPでJavascriptのデータやソースコードを作り出しています。)

次に商品詳細ページがブラウザに読込まれる際、
products.jsがブラウザに読込まれ、
1〜21行目の$(function() { 〜 });までの処理が実行されます。
(上記の記述は、JQueryのHTMLロード後に実行される処理の記述方法です。)
この処理の中にある、以下の記述で、
$('select[name=classcategory_id1]').change(function(){****});
$('select[name=classcategory_id2]').change(function(){****});
selectタブでname属性がclasscategory_id1、classcategory_id2のエレメントの
onchangeイベントに処理をセットしています。
(onchange=""の記述と意味は一緒です。こちらもJQueryの記述方法です。)

products.jsの9行目にsetClassCategories(****);の記述がありますので、
規格1プルダウンを変更したタイミングで、規格2プルダウンの選択肢がセットされます。

ブラウザのソースの表示で、ブラウザに読込まれたHTMLソースを見ると、
出来上がったJavascriptのソースが確認できますので、
理解しやすいかもしれません。
(私はソースの表示から処理を追っていきますので・・・)

ここはEC-CUBEの中でも分かりづらい部分かと思います。
bitterice
投稿日時: 2011/8/10 11:23
対応状況: 解決済
半人前
登録日: 2011/7/26
居住地:
投稿: 13
Re: イベント発生のタイミングについて
468様

お礼が遅くなりましたが、詳しく説明頂きありがとうございました。

>selectタブでname属性がclasscategory_id1、classcategory_id2のエレメントのonchangeイベントに処理をセットしています。

というのが理解に苦しんだ点でしたがすっきりしました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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