ページ 11

テーブルの出力ができない

Posted: 2007年5月10日(木) 20:08
by yoshi
お世話になります。
現在CMSD組み込み中でのご質問なのですが、まだCMSD取り組みに日が浅いためほとんど初心者状態ですので、どうか御指南いただけないでしょうか?

内容的には、ランキングの様なものをつくりたく、listitemでテーブル表示するものを制作してみたのですが、phpへ表示する段階でテーブルは反映されず、登録したデータがただ連なって表示されるだけでした。

スキーマのデータは

コード: 全て選択

<?xml version="1.0" encoding="UTF-8"?>
<schema name="top-best" caption="ベスト10">
<data name="bestlist" type="list" caption="ベスト10"> 
  <listitem caption="機種" > 
    <data name="best" type="text" caption="機種" /> 
  </listitem> 
</data>
</schema>
デザイン定義は

コード: 全て選択

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="EUC-JP" omit-xml-declaration="yes" />
<xsl:template match="/entry"><link href="../../../../css.css" rel="stylesheet" type="text/css" />
<table>  
<xsl:for-each select="bestlist/listitem"> 
  <tr> 
  <td><xsl:value-of select="best" /></td> 
  </tr> 
</xsl:for-each> 
</table>

</xsl:template>
</xsl:stylesheet>
埋め込みタグは

コード: 全て選択

<cmsd:entrylist name="top-best" design="best" rows="10" />
となっています。

フォーラムにまんまのコードがありましたのでコピペでもためしてみましたが
だめでした。
出力をilstitemのテーブル単位で表示する方法をよろしくお願い致します。

Posted: 2007年5月11日(金) 02:49
by tsu
埋め込みタグがentrylistなのでこうなります。

コード: 全て選択

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="EUC-JP" omit-xml-declaration="yes" />
<xsl:template match="/entrylist"><link href="../../../../css.css" rel="stylesheet" type="text/css" />

<table> 

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

<xsl:for-each select="bestlist/listitem"><!-- listitem -->

  <tr>
  <td><xsl:value-of select="best" /></td>
  </tr>

</xsl:for-each><!-- listitem -->

</xsl:for-each><!-- entry -->

</table>

</xsl:template>
</xsl:stylesheet>
1エントリ1テーブルならfor-each select〜を外に出してやって下さい。
多分動くと思います。

あと、どうでもいいことなんですけど、linkタグってheadの外にも書けるんですか?

ありがとうございました。

Posted: 2007年5月11日(金) 08:36
by yoshi
linkタグはビジュアル的に確認するためにCSSをリンクしたときのものだと思います。
現在はページの方で適用させているので外しておきます。
早速試してみましたがtableを中に入れても結果は最初と同じでテーブルでリストを分けて出力することは出来ませんでした。

Re: ありがとうございました。

Posted: 2007年5月11日(金) 11:27
by webmaster
 yoshiさん、ご質問ありがとうございます。リスト項目をランキング情報に使うという
のは面白いですね。

 元々のご質問では、cmsd:entrylist を利用しているのに対してデザイン定義が
エントリ1件用のものだった為、このような結果になっているものと思われます。

 対処方法としてはtsuさんが提示して下さったように、エントリ一覧用のデザイン
を作って頂ければOKなはずなのですが、うまくいかなかったでしょうか…?

 一度、出力結果のHTMLソースをご確認頂き、その内容を引用して頂いても
よろしいでしょうか。何か分かるかもしれません。

# 余談ですが、tsuさんのソースのコメントはとても見易くて良いですね。:)

Posted: 2007年5月11日(金) 12:02
by yoshi
ソースではtablタグでtd、trは入力した個数分あるのですが、入力した情報が出力されていないようです。

コード: 全て選択

<table>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
</table>

Posted: 2007年5月11日(金) 16:39
by tsu
最初はタグが出力されずに内容が表示され、今度はタグが出るのに内容が出ない。んー。

xslのファイル名間違えてるとエラーでるし、なんでしょう。
全てのエントリデータ削除してもう一度登録し直してみてもらえませんか?
よくあるのが、運用途中でスキーマの内容を編集したりして、今まで見れてたのが急に見えなくなったりという現象が起きたり、起きなかったり。

それでもまだ問題が起きるなら一度そのページを見せて頂かないとわからんですね。
見せてもらってもわからないかもしれませんけど。

>webmasterさん
最近どれがどのコメントなのかわからなくなるので、さらに番号振ってます。
でも、プログラム内部には負けますよ(笑)