Location: PHPKode > projects > Runemaster > docs/template.form.select.element.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>4.2. セレクト要素の操作</title>
<link rel="stylesheet" href="style.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="index.html" title="Runemaster マニュアル">
<link rel="up" href="form.html" title="第4章 フォーム">
<link rel="prev" href="form.html" title="第4章 フォーム">
<link rel="next" href="template.form.hidden.element.html" title="4.3. Hidden (隠し) データ">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">4.2. セレクト要素の操作</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="form.html">前のページ</a> </td>
<th width="60%" align="center">第4章 フォーム</th>
<td width="20%" align="right"> <a accesskey="n" href="template.form.hidden.element.html">次のページ</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="section" lang="ja">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="template.form.select.element"></a>4.2. セレクト要素の操作</h2></div></div></div>
<div class="section" lang="ja">
<div class="titlepage"><div><div><h3 class="title">
<a name="select.options.setting"></a>4.2.1. オプションリストを設定する</h3></div></div></div>
<p>
      セレクト (&lt;SELECT&gt;) 要素内のオプションリストを直接テンプレートデータ内に記述することができますが、
      プログラムからこのリスト内容を設定することもできます。
      これにより動的にセレクト要素内のオプションリストを簡単に変化させることができるようになります。
    </p>
<p>
      プログラムからオプションリストを設定する際のテンプレート側データもいたってシンプルです。
      ただ単純に name 属性を持ったセレクト要素を準備しておきます。
      そのセレクト要素内にオプションリストを記述しておく必要はありません。
    </p>
<pre class="programlisting">
&lt;form name="form1"&gt;
  &lt;select name="items"&gt;
  &lt;/select&gt;
&lt;/form&gt;</pre>
<p>
      オプションリストの設定には、setOption メソッドを使用します。
      第一パラメータには設定したいセレクト要素の名称 (name 属性の値)、
      第二パラメータには設定したいリスト内容を連想配列として作成したものをセットします。
    </p>
<pre class="programlisting">
$master = new Rune_Master('/path/to/templateDirectory');

$items = array('1' =&gt; '杖', '2' =&gt; '書物', '3' =&gt; 'ストーン');

$master-&gt;setOption('items', $items);
$master-&gt;cast('example');</pre>
<p>
      以上のコードを実行すると、次のような結果を得ることができます。
    </p>
<pre class="programlisting">
&lt;form name="form1"&gt;
  &lt;select name="items"&gt;
    &lt;option value="1"&gt;杖&lt;/option&gt;
    &lt;option value="2"&gt;書物&lt;/option&gt;
    &lt;option value="3"&gt;ストーン&lt;/option&gt;
  &lt;/select&gt;
&lt;/form&gt;</pre>
</div>
<div class="section" lang="ja">
<div class="titlepage"><div><div><h3 class="title">
<a name="set.value.with.option.list"></a>4.2.2. オプションリストを設定した要素を選択状態にする</h3></div></div></div>
<p>
      setOption とあわせて、そのセレクト要素の値を setFormValue を使って設定することで、
      プログラムから設定されたオプションリストをもつセレクト要素を選択状態にすることができます。
    </p>
<div class="example">
<a name="id343764"></a><p class="title"><b>例 4.2. 動的リストをもつセレクト要素を選択状態にする</b></p>
<div class="example-contents"><div class="variablelist"><dl>
<dt><span class="term">PHP コード</span></dt>
<dd><pre class="programlisting">
$formValue = new stdClass();
$formValue-&gt;items = 2;
$items = array('1' =&gt; '杖', '2' =&gt; '書物', '3' =&gt; 'ストーン');

$master-&gt;setFormValue('form1', $formValue);
$master-&gt;setOption('items', $items);

$master-&gt;cast('example');</pre></dd>
<dt><span class="term">実行結果</span></dt>
<dd><pre class="programlisting">
&lt;form name="form1"&gt;
  &lt;select name="items"&gt;
    &lt;option value="1"&gt;杖&lt;/option&gt;
    &lt;option value="2"  selected="selected"&gt;書物&lt;/option&gt;
    &lt;option value="3"&gt;ストーン&lt;/option&gt;
  &lt;/select&gt;
&lt;/form&gt;</pre></dd>
</dl></div></div>
</div>
<br class="example-break">
</div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="form.html">前のページ</a> </td>
<td width="20%" align="center"><a accesskey="u" href="form.html">上に戻る</a></td>
<td width="40%" align="right"> <a accesskey="n" href="template.form.hidden.element.html">次のページ</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">第4章 フォーム </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">ホーム</a></td>
<td width="40%" align="right" valign="top"> 4.3. Hidden (隠し) データ</td>
</tr>
</table>
</div>
</body>
</html>
Return current item: Runemaster