「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
-
bcacsato
- パワーユーザー
- 記事: 233
- 登録日時: 2005年11月27日(日) 14:05
投稿記事
by bcacsato » 2012年11月10日(土) 06:24
一覧ページから個別ページへのリンクで、絞り込み条件によってリンク先を変更したいため、
http://cms.al-design.jp/phpbb/viewtopic ... 5139#p5139
こちらのページを参考に、下記の通り記述しました。
コード: 全て選択
<article>
<a>
<xsl:if test="//group[@key='category1']/@value='1'"><xsl:attribute name="href">page1.php?eid={@id}</xsl:attribute></xsl:if>
<xsl:if test="//group[@key='category2']/@value='2'"><xsl:attribute name="href">page2.php?eid={@id}</xsl:attribute></xsl:if>
<xsl:if test="not(//group[@key='category1']/@value) and not(//group[@key='category1']/@value)"><xsl:attribute name="href">other.php?eid={@id}</xsl:attribute></xsl:if>
・・・・
</a>
</article>
しかし、これですと{@id}のところにパラメータ値が代入されず、「{@id}」とそのまま表示されてしまいます。
{@href}にしても同様です。
URLのパラメータにエントリIDを出力する方法はありますでしょうか?
※ところで、上記リンク先ページの下記ソースですが、</attribute> ではなく、</xsl:attribute> ですね?
このソースをそのまま使ったため作動せず、かなり悩みました(^^ゞ
コード: 全て選択
<a>
<xsl:attribute name="href">http://cms.al-design.jp</attribute>CMS Designer
</a>
-
webmaster
- Site Admin
- 記事: 1451
- 登録日時: 2004年12月10日(金) 10:09
投稿記事
by webmaster » 2012年11月10日(土) 11:29
bcacsatoさん、いつもコメントありがとうございます。webmasterです。
このあたり、私もよく混乱するのですが、{@id}と書けるのは属性値の中(つまり"?"の中)だけで、それ以外の場所には「xsl:value-of」を使います。
ですのでこの場合、
<xsl:attribute name="href">page1.php?eid=<xsl:value-of select="@id" /></xsl:attribute>
としてみてください。
※ところで、上記リンク先ページの下記ソースですが、</attribute> ではなく、</xsl:attribute> ですね?
このソースをそのまま使ったため作動せず、かなり悩みました(^^ゞ
これは、無駄なお時間をとらせてしまい、申し訳ありませんでした…。m(__;)m
この手のサンプルソースに間違いがあると、多くの方に本当に無駄な時間を取らせることになってしまう為、気をつけてはいるのですが…。ご指摘ありがとうござました。元記事の方はすぐに修正させて頂きます。
-
bcacsato
- パワーユーザー
- 記事: 233
- 登録日時: 2005年11月27日(日) 14:05
投稿記事
by bcacsato » 2012年11月10日(土) 16:30
webmasterさま
ご回答ありがとうございます。
ご提示いただいた方法でうまくいきました!
これまでカテゴリごとにデザイン定義ファイルを作成していたため、
1つのファイルで管理できるようになり、大変楽になりました。