flexy:nameuses="variable"

flexy:nameuses="variable" – flexy のフォーム要素の名前に、変数を使用する

Synopsis

使用法 ( flexy:nameuses="variable" name="sometag[%s]" )

Description

複数の入力欄を持つフォーム (例: グループのメンバーなど) が動的に生成される場合に、 この属性を使用して flexy 要素を作成します。その際、 sprintf を使用して変数の値を name 属性に設定します。

Example

flexy:ignore を使用したテンプレート

   

<html>
  <head>
    <title>Example of name Uses</title>
  </head>
  <body>
    <form name="formtest">
      <span flexy:foreach="data,key,row">
        {key}: <input name="data%s" flexy:nameuses="key" type="hidden" size="10"><br>
      </span>
    </form>
  </body>
</html>

バックエンドのコードの一部

<?php
$this
->data = array();
$elem = array();
$elem['formtest'] = &new HTML_Template_Flexy_Element();
$elem['formtest']->attributes['method'] = 'post';
$elem['formtest']->attributes['action'] = 'test';  

for(
$i 0$i 10$i++) {
        
$this->data[$i] = $i;
       
        
$elem["data$i"] = new HTML_Template_Flexy_Element();
        
$elem["data$i"]->attributes['type'] = 'text';
        
$elem["data$i"]->attributes['size'] = $i;

}
$flexy->outputObject($this$elem);

?>

コンパイルされたテンプレート

<html>
  <head>
    <title>Example of name Uses</title>
  </head>
  <body>
    <?php echo $this->elements['formtest']->toHtmlnoClose();?>
<?php 
if ($this->options['strict'] || (is_array($t->data)  || is_object($t->data)))
foreach(
$t->data as $key => $row) {?>
      <?php echo htmlspecialchars($key);?><?php if (!isset($this->elements[sprintf('data%s',$key)])) $this->elements[sprintf('data%s',$key)]= $this->elements['data%s'];
                
$this->elements[sprintf('data%s',$key)] = $this->mergeElement($this->elements['data%s'],$this->elements[sprintf('data%s',$key)]);
                
$this->elements[sprintf('data%s',$key)]->attributes['name'] = sprintf('data%s',$key);
                echo 
$this->elements[sprintf('data%s',$key)]->toHtml();?><br>
<?php }?>
    </form>
  </body>
</html>

結果の出力

         
 
 <html>
  <head>
    <title>test for PEAR bug#4683</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <form name="formtest" method="post" action="test">      
      0: <input name="data0" type="text" size="0"><br>
      1: <input name="data1" type="text" size="1"><br>
      2: <input name="data2" type="text" size="2"><br>
      3: <input name="data3" type="text" size="3"><br>
      4: <input name="data4" type="text" size="4"><br>
      5: <input name="data5" type="text" size="5"><br>
      6: <input name="data6" type="text" size="6"><br>
      7: <input name="data7" type="text" size="7"><br>
      8: <input name="data8" type="text" size="8"><br>
      9: <input name="data9" type="text" size="9"><br>
    </form>
  </body>
</html>
自動的なフォームの値の置換を抑止する (Previous) データを PHP から Javascript に簡単に渡せるようにする (Next)
Last updated: Mon, 28 Jul 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.