質問 > フロント機能 > カテゴリをSELECT化したい |
フロント機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
DDR |
投稿日時: 2009/3/23 23:37
対応状況: −−−
|
仙人 登録日: 2008/6/21 居住地: 大阪 投稿: 307 |
Re: カテゴリをSELECT化したい お世話になっております
そうですねむやみにsmartyでやるより htmlで実装してみました <select onChange='location.href=this.options[this.selectedIndex].value'> <!--{section name=cnt loop=$arrTree}--> <OPTION label="<!--{$arrTree[cnt].category_name}-->" value="<!--{$smarty.const.URL_DIR}-->products/list<!--{$arrTree[cnt].category_id}-->.html"></OPTION> <!--{/section}--> </select> これで見事にSELECT化が完成致しました! 有難う御座いました 今度は、選択した後に親もSELECT化ですね これはPHPの判別部分になりそうですね 弄ってみて分からなかったらまた書き込みさせてください 本当に有難う御座いました! 追記;親カテゴリーの部分は SELECT化せずにパンくずリストのようにすれば 単純にサイト移動がしやすくなりました 親>子>SELECT のように表示させることが出来ました
|
seasoft |
投稿日時: 2009/3/23 17:24
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: カテゴリをSELECT化したい > smartyを勉強してないので無知で申し訳ないです
> html_options > でvaluesを与えてやるにはどうしたらいいのでしょうか? 連想配列あたりで値リストを与えるんじゃないですかね? 基本的には <!--{section}--> を使わなくなると思います。 (私も Smarty はさほど詳いわけで無いので、マニュアル確認しないと不確かですが。) HTML の方が詳しいのであれば、無理に <!--{html_options}--> を使わずに、<OPTION> でも良いと思いますよ。
|
DDR |
投稿日時: 2009/3/23 17:03
対応状況: −−−
|
仙人 登録日: 2008/6/21 居住地: 大阪 投稿: 307 |
Re: カテゴリをSELECT化したい なんとか一つのセレクトにまとめて表示の方は出来ました!
いつも有難う御座います <select onChange='location.href=this.options[this.selectedIndex].value'> <!--{section name=cnt loop=$arrTree}--> <!--{html_options options=$arrTree[cnt].category_name selected=$category_id}--> <!--{/section}--> </select> smartyを勉強してないので無知で申し訳ないです html_options でvaluesを与えてやるにはどうしたらいいのでしょうか? 今度は選択したらリンクするようにしてやりたいです 自分でも調べてみます 入れたい値は <a href="<!--{$smarty.const.URL_DIR}-->products/list.php<!--{$arrTree[cnt].category_id}-->.html"> になるようにしたいです
|
seasoft |
投稿日時: 2009/3/23 12:29
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: カテゴリをSELECT化したい 少なくとも「一つのオプションの中に3つ入れたい」という動作にするには、最初のレスに書いたような階層にする必要があります。
|
DDR |
投稿日時: 2009/3/23 12:19
対応状況: −−−
|
仙人 登録日: 2008/6/21 居住地: 大阪 投稿: 307 |
Re: カテゴリをSELECT化したい アドバイスを頂いているのに文章が表現できず申し訳ないです
ローカル環境ではないので、もう少し具体的に書きます サブカテゴリーを表示させています カテゴリー一覧を開き、レイアウトにて 商品一覧が並ぶページの上にサブカテゴリーをブロックとして 表示をさせてます *商品一覧ページ* 親カテゴリー1 子カテゴリ1 子カテゴリ2 子カテゴリ3・・・ カテゴリ上部に説明文を入れる 商品一覧リスト ・ ・ ・ このような表示形式なんですが 親カテゴリー1 子カテゴリ1 子カテゴリ2 子カテゴリ3・・・ が今回の、サブカテゴリーブロックになります これが 子カテゴリ毎にSELECTになってしまっています 親カテゴリー1 選択して下さい 選択して下さい 選択して下さい 子カテゴリ1 子カテゴリ2 子カテゴリ3・・・ これを 親カテゴリー1 *ここから選択して下さい* *子カテゴリ1* *子カテゴリ2* *子カテゴリ3* のように一つのオプションの中に3つ入れたいのです .tplは <!--{section name=cnt loop=$arrTree}--> <!--{* 階層を level へ *}--> <!--{assign var=level value="`$arrTree[cnt].level`}--> <!--{* カテゴリ名を disp_name へ *}--> <!--{assign var=disp_name value="`$arrTree[cnt].category_name`"}--> <!--{assign var=disp_disp value="`$arrTree[cnt].category_disp`"}--> <!--{* 表示カテゴリのみ *}--> <!--{if $arrTree[cnt].display == 1}--> <!--{* 選択したカテゴリ *}--> <!--{if in_array($arrTree[cnt].category_id, $tpl_category_id) }--> <li><a href="<!--{$smarty.const.URL_DIR}-->products/list.php<!--{$arrTree[cnt].category_id}-->.html" title="<!--{$disp_name|escape}-->"><!--{$disp_name|escape}--></a></li> <!--{* 未選択カテゴリ *}--> <!--{else}--> <select onChange='location.href=this.options[this.selectedIndex].value'> <option label="すべての商品" value="">全ての商品</option> <!--{html_options options=$arrTree[cnt].category_name selected=$category_id}--> </select> <!--{/if}--> <!--{$disp_disp|sfCutString:40|escape}--> <!--{/if}--> <!--{/section}--> としてやると 子カテゴリーは1個ずつですがSELECT化はしてます 選択するとその子カテゴリーへリンクするようにしたいので、VALUEにURLを指定したいのと、一つにまとめたいのですね
|
seasoft |
投稿日時: 2009/3/23 1:14
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: カテゴリをSELECT化したい 文書から現状がなかなか把握できていません。
百聞(文?)は一見に如かず。 状態を閲覧できれば話しは早いのですが。
|
DDR |
投稿日時: 2009/3/22 14:15
対応状況: −−−
|
仙人 登録日: 2008/6/21 居住地: 大阪 投稿: 307 |
Re: カテゴリをSELECT化したい お世話になります
smartyの参照サイトを参考に <select onChange='location.href=this.options[this.selectedIndex].value'> <option label="すべての商品" value="">全ての商品</option> <!--{html_options options=$arrTree[cnt].category_name selected=$category_id}--> </select> へ変更しました こちらの方が分かりやすいですね smartyは慣れたら便利に使えそうですね 未だに、個別に表示されてしまうことと valuesの値をどのように入れてやっていいか分かりません <!--{html_options options=$arrTree[cnt].category_name selected=$category_id}--> にvalues="<!--{$smarty.const.URL_DIR}-->products/list<!--{$arrTree[cnt].category_id}-->.html" を追加しても真っ白になり無理でした どのようにしたら、valueの値にURLを挿入できますか? 配列的には素人思考で申し訳ないですが array( list1.html=>サンプル1($arrTree[cnt].category_name) list2.html=>サンプル2($arrTree[cnt].category_name) ) のような形になればいいのかと思いますがどうしたらいいか 分かりません optionsはキーがvalues属性、要素がoutput属性の連想配列 のようですが、キーが出来てないから 現在はサイトから選択するとサンプル1とサンプル2が /products/0 と表示されてしまっているんですね 実装したい例としては http://www.ark-pc.co.jp/list/?key=&cat=c11&listype=&dsp=0&order=&limit=&col= このような検索条件みたいな感じです
|
seasoft |
投稿日時: 2009/3/22 11:15
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: カテゴリをSELECT化したい http://www.smarty.net/manual/ja/language.function.html.options.php を使うのが理想だとは思います。
ご提示の手法でしたら、
のような階層となる必要がある気がします。
|
DDR |
投稿日時: 2009/3/22 2:41
対応状況: −−−
|
仙人 登録日: 2008/6/21 居住地: 大阪 投稿: 307 |
カテゴリをSELECT化したい お世話になっております
現在 商品一覧カテゴリーをフォームにして 選択すると子カテゴリへ移動する サブカテゴリーを作成しております <!--商品カテゴリーここから--> <div id="maincate"> <h2><!--{$maincate[0].category_name }--></h2> <div class="maincate_disp"> <!--{$maincate[0].category_disp }--> </div> <ul> <!--{section name=cnt loop=$arrTree}--> <!--{* 階層を level へ *}--> <!--{assign var=level value="`$arrTree[cnt].level`}--> <!--{* カテゴリ名を disp_name へ *}--> <!--{assign var=disp_name value="`$arrTree[cnt].category_name`"}--> <!--{assign var=disp_disp value="`$arrTree[cnt].category_disp`"}--> <!--{* 表示カテゴリのみ *}--> <!--{if $arrTree[cnt].display == 1}--> <!--{* 選択したカテゴリ *}--> <!--{if in_array($arrTree[cnt].category_id, $tpl_category_id) }--> <li><a href="<!--{$smarty.const.URL_DIR}-->products/list.php<!--{$arrTree[cnt].category_id}-->.html" title="<!--{$disp_name|escape}-->"><!--{$disp_name|escape}--></a></li> <!--{* 未選択カテゴリ *}--> <!--{else}--> <SELECT onChange='location.href=this.options[this.selectedIndex].value'> <OPTION value="<!--{$smarty.const.URL_DIR}-->products/list<!--{$arrTree[cnt].category_id}-->.html"><!--{$disp_name}--></OPTION> <OPTION value="SAMPLE.html" selected>ここから選択</OPTION> </SELECT> <!--{/if}--> <!--{$disp_disp|sfCutString:40|escape}--> <!--{/if}--> <!--{/section}--> </ul> </div> <!--商品カテゴリーここまで--> これだと、表示はされますが中身が1個ずつのフォームで表示されてしまいます どのようにしたら1つのSELECTの中に現在いるLevelのカテゴリー が入りますか? よろしくお願いいたします
|
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |