ページ 11

テーブルのセルの表示、非表示はできないのでしょうか?

Posted: 2007年10月25日(木) 18:55
by sal
いつもお世話になっております。
ひとつお聞きしたいのですが、リストアイテムの中の項目登録で、
記入があった場合には、セルを表示して、
記入が無い場合にはセルを表示させないようにしたいと思い、
以下の様に書いたのですが、記入が無い場合でもセルが表示されてしまいます。
セルを表示させないということは出来ないのでしょうか?
どうぞよろしくお願い致します

コード: 全て選択

<xsl:for-each select="entry">

<table width="100%" border="0" cellspacing="1" cellpadding="5">
  <tr>
    <td colspan="3" bgcolor="#D8F1F4"><font color="#003333"><strong><xsl:value-of select="genre" disable-output-escaping="yes"/></strong></font></td>
    </tr>
    
  <xsl:for-each select="reikilist/listitem">
  
  <xsl:if test="shou=''"></xsl:if>
  
  <xsl:if test="not(shou='')">
  <tr>
    <td colspan="3" bgcolor="#cccccc"><strong><xsl:value-of select="shou" disable-output-escaping="yes" /></strong></td>
  </tr>
 </xsl:if>
  
  <tr>
    <td width="55%" bgcolor="#FFFFFF"><a href="http://www.xx.php" target="_blank"><xsl:value-of select="listtitle" disable-output-escaping="yes" /></a></td>
  </tr>
  </xsl:for-each>
  
</table>
</xsl:for-each>
[/code]

Re: テーブルのセルの表示、非表示はできないのでしょうか?

Posted: 2007年10月31日(水) 16:37
by webmaster
 salさん、ご質問ありがとうございます。
 お返事が大変遅れまして申し訳ありません。

 基本的にはそれで合っていると思うのですが・・・。
 ためしに、

<xsl:if test="not(shou/text()='')">

 だとどうでしょうか。

 もしくは、

<xsl:if test="string-length(shou) > 0">

 もお試しください。

 shouはtext項目またはtextarea項目という前提です。

すみません。解決していました。

Posted: 2007年11月01日(木) 15:03
by sal
お返事ありがとうございました。自分の中で解決していたのですが、
こちらにその旨を書き込むのを忘れておりました。

表示されなかった原因ですが、
元々何個かデータを登録してあったスキーマファイルに、新しく件の項目を
追加したものだったので、既に登録してあるデータが
書き変わっていなかったためでした。
空白のままなら、行間を詰めるという命令のため、再度保存するのを
忘れていました。

空白のままのデータも再度保存し直しましたら、ちゃんとセルが消えてくれました。
ご迷惑をおかけしてどうもすみませんでした。