ページ 1 / 1

フォームのラジオボタンをCMSDで増やしたいのですが

Posted: 2007年3月14日(水) 16:56
by sal
CGIのメールフォームを使い、その中に設置するラジオボタンのチェック項目を
"ラジオボタン" 質問01
"ラジオボタン" 質問02
のようにCMSDの管理画面で何個も増やしていきたく、
スキーマファイルを作り、以下の様に入力してみたのですが、

<xsl:for-each select="entry">
<input name="sitsumon" type="radio" value="<xsl:value-of select="sitsumon" disable-output-escaping="yes"/>"/> <xsl:value-of select="sitsumon" disable-output-escaping="yes"/>
</xsl:for-each>

無理だろうなと思っていたのですが、やはりうまく行きませんでした。
どのようにしたら増やしていけるのでしょうか?
宜しくお願い致します。

Re: フォームのラジオボタンをCMSDで増やしたいのですが

Posted: 2007年3月14日(水) 18:32
by webmaster
 salさん、大変面白いアイデアだと思います。

 既にお気づきの通り、XMLではタグの記述の中に別のタグを含む事はできません。

 タグの記述の中に値を埋め込む方法は2種類あって、一つは{}を使う方法です。

<input name="sitsumon" type="radio" value="{sitsumon}" />

 のように、属性値の中で{項目名}のように書くと、xsl:value-ofと同じような
処理を属性値の中で行うことができます。

 また、xsl:attributeというXSL命令タグを使うこともできます。

コード: 全て選択

<input name="sitsumon" type="radio" >
  <xsl:attribute name="value">
    <xsl:value-of select="sitsumon" disable-output-escaping="yes"/>
  </xsl:attribute>
</input>
 xsl:attributeは、一つ上の階層のタグにname属性で指定した名前の属性を追加し、
その値としてxsl:attributeタグの内容をコピーします。
 xsl:attributeを使うと、xsl:ifなどを使った条件分岐を使って属性値を切り替える
こともできる為、様々な場面で応用可能です。

 いろいろとお試し頂ければと思います。

無事表示することができました

Posted: 2007年3月14日(水) 19:23
by sal
イメージやalt等を表示する際にはこの方法でやっていたのに
すっかり忘れていました。恥ずかしいかぎりです。
基本的に、タグにタグの場合はこの方法でやればいいんですね。
さらに、追加情報もとても参考になりました。ページを作成する際に、
機会があれば使わせていただきます。
どうもありがとうございました。