動的エレメントを操作する(Flexy)

このエントリーをはてなブックマークに追加

たとえば、以下のようなコードをFlexyテンプレートで実現させたい場合。

foreach ($entry as $e) {
  echo '<input name="type[{$e->id}]" value="{$e->value}">';
}

やっぱりここはFlexyっぽく…

{foreach:entryid,id}
  <input name="type[{id}]" />
{end:}
foreach ($entry as $e) {
  $oElements["type[{$e->id}]"] = new HTML_Template_Flexy_Element;
  $oElements["type[{$e->id}]"]->setValue($e->value);
}

とやりたいけど、これだと上手くいかないので。

それなら、最初から結果を配列に入れて

{foreach:entry,e}
  <input name="type[{e->id}]" value="{e->value}" type="text" />
{end:}

と書くのもいいのですけど、折角なのでHTML_Template_Flexy_Elementを使ってロジック側で操作したい所。

ループ内の要素を操作するには、flexy:nameusesを使用。

{foreach:entryid,id}
	<input flexy:nameuses="id" name="type[%s]" />
{end:}
foreach ($entry as $e) {
	$oElements["type[{$e->id}]"] = new HTML_Template_Flexy_Element;
	$oElements["type[{$e->id}]"]->setValue($e->value);
}

という感じで、%sが「id」の値に置き換えられ操作可能になります。
type_%sとかでもOK!


Edited on 2016.12.16 Created on 2007.04.08 PHPFlexy
PAGE TO TOP