入力フォーム自体はSmartyのテンプレートで出力。フォーム中のドロップダウンリストの値は、file関数で読み込んでいました。
file関数で読み込んだ値の表示自体は問題なかったんですが、foreach関数で値を出力する際に改行コードが入ってしまい、trim関数を使うも、うまく除去できず・・・
いろいろ調べたら、Smartyのテンプレート上でもPHP関数が使えることが分かりました。
ドロップダウンリストは、以下のようにして読み込んでいたんですね。
$kenlist = file(“conf/ken_list.txt”);
trim($kenlist);
$tpl -> assign(“KEN”,$kenlist);
Smartyテンプレート側では、
{foreach from=$KEN key=key item=val}
<option value='{$key}’>{$val}</option>
{/foreach}
といった感じで記述。
{$val}に読み込んだ値が入るんだけど、コード上で改行されてしまうので、改行コードを上手く除去したいと思い、いろいろ調べたら下記のように記述することで問題が解消。
{$val|trim}
{$val}という変数内で、trim関数を記述することで実行されることが分かりました。上記の記述で改行コードが削除することができました。