パラメーターの絞込みに合う条件がない場合

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
mason
パワーユーザー
記事: 48
登録日時: 2007年7月02日(月) 18:36

パラメーターの絞込みに合う条件がない場合

投稿記事 by mason » 2008年1月08日(火) 14:21

こんにちは。いつもお世話になっております。

パラメータの動的絞り込みを使った検索システムを使って、8つほどのページを表示していますが、
内容が空の場合、ページ部分へは「データはございません」と表示することができるのですが、
タイトル部分にもデザイン定義を作っていまして、内容が空のページではタイトルに日時が表示されてしまいます。

タイトルには内容が空の場合でもデザイン定義で指定した内容を表示させたいのですが、
データが空の場合は表示できないのでしょうか?
パラメーターによって識別・・・ということは可能でしょうか?

ご教授よろしくお願い致します。


▼タイトル部分のデザイン定義

コード: 全て選択

 <xsl:template match="/entry">

<xsl:if test="tourist='1'">
寺院
</xsl:if>
<xsl:if test="tourist='2'">
神社
</xsl:if>
<xsl:if test="tourist='3'">
古墳・遺跡・街道
</xsl:if>
<xsl:if test="tourist='4'">
施設
</xsl:if>
<xsl:if test="tourist='5'">
自然・公園
</xsl:if>
<xsl:if test="tourist='6'">
レジャー・スポーツ
</xsl:if>
<xsl:if test="tourist='7'">
道の駅・温泉・宿泊
</xsl:if>
<xsl:if test="tourist='8'">
その他
</xsl:if>
  </xsl:template>
▼一覧ページのデザイン定義

コード: 全て選択

<xsl:template match="/entrylist">
<xsl:for-each select="entry">

<div class="road-box">
<h3><a href="road01_page.php{@href}">
<xsl:value-of select="title" disable-output-escaping="yes" /></a></h3>
<div class="clearFix">
<img src="{image}&w=125" alt="{image/@alt}" class="photo" />
<p>
<xsl:value-of select="explain" disable-output-escaping="yes" />
<a href="road01_page.php{@href}"><img src="http://www.scube2.smartvalue.ad.jp/road/img/page_btn_off.gif" alt="詳細ページへ" width="125" height="26" border="0" class="road-btn" /></a>
</p>
</div>
</div>

</xsl:for-each>

<xsl:if test="count(entry)=0"> 
<div class="road-box">
<p>該当のデータはございません</p>
</div>
</xsl:if> 

  </xsl:template>
▼パラメーターの絞込みによる表示URL

コード: 全て選択

http://www.sample.jp/road01.php?tourist=1
(?tourist=8まであります)

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: パラメーターの絞込みに合う条件がない場合

投稿記事 by webmaster » 2008年1月09日(水) 16:51

 masonさん、いつもお世話になっております。

 エントリが空だった場合、

コード: 全て選択

<xsl:template match="noentry">
データはございません。
</xsl:template>

<xsl:template match="entry">
〜
 のようにデザイン定義に「noentry」に対するテンプレートを追加して
頂くことで対応可能です。

 この辺、マニュアルで詳しく解説していなかったと思います。
 お手数をおかけして申し訳ありません。

mason
パワーユーザー
記事: 48
登録日時: 2007年7月02日(月) 18:36

投稿記事 by mason » 2008年1月09日(水) 18:09

ご返答ありがとうございます。

ご提案いただいた内容の場合、空データの場合は全てに共通して
「データはございません」と出ると思いますが、
今回の場合、パラメーターの?tourist=1 の部分の値によって
タイトルが変わることを想定しているのですが可能でしょうか?

データが空の場合、ページ内容には「データはございません」と出ながら
タイトルは?tourist=1 の値(この場合、寺院)をデザイン定義から読み込んで
出したいと思っていますが無理でしょうか。。

パラメーターによる絞込みをしないとPHPの数がすごいことになってしまい
ページとタイトルにそれぞれデザイン定義を作って一度に絞込み表示をかけており
このようなことになっております :cry:

↓↓実は以前にも質問させて頂いたものと同じ案件です・・・↓↓
http://cms.al-design.jp/phpbb/viewtopic.php?t=889

何か方法はございますでしょうか?
ややこしい質問ばかりで申し訳ありません。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

投稿記事 by webmaster » 2008年1月10日(木) 17:37

masonさん、お返事遅れまして申し訳ありません。

ちょっと面倒なやり方になるのですが、グループ絞込み条件を取得する方法が
ございます。

詳しくはリファレンスマニュアル「5.5.13 グループ絞込み条件を表示する。」を
ごらん頂ください。

マニュアルの例では、

コード: 全て選択

<xsl:template match="/entrylist" >
 〜
となっていますが、エントリなしの場合ですと、ここが

コード: 全て選択

<xsl:template match="noentry" >
 〜
になります。

お手数をおかけしますが、一度お試し頂ければ幸いです。

mason
パワーユーザー
記事: 48
登録日時: 2007年7月02日(月) 18:36

投稿記事 by mason » 2008年1月10日(木) 19:08

ありがとうございます!

教えていただいた方法で試したところ、うまくいきました!!
実現出来なければ、かなりの数のPHPを用意するところだったので
とても助かりました。 :D

いつもありがとうございます。
これからもよろしくお願いします。

返信