• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【smarty】予約変数に可変変数)

予約変数に可変変数とループ処理ができるのか?

このQ&Aのポイント
  • POST送信されたデータが複数あります。項目数が可変なため、ループで処理したい場合について検討しています。
  • 現在、<{$smarty.post.address1}>、<{$smarty.post.address2}>、<{$smarty.post.address3}>と記述してデータを取得していますが、項目数が増える場合に対応できません。
  • 試しに<{section name=cnt loop=$kosu}><{assign var="str" value='$smarty.post.address'|cat:$smarty.section.cnt.iteration}><{$str}><{/section}>と記述してみましたが、エラーになります。予約変数はこのような使い方ができないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Dags
  • ベストアンサー率78% (11/14)
回答No.1

<{section name=cnt loop=$kosu}> <{assign var="str" value='address'|cat:$smarty.section.cnt.iteration}> <{$smarty.post.$str}> <{/section}> これでいけますよ。(もう少しだった。 $kosuもテンプレート側でいけますがなるべくPHP側でやったほうがいいです。 セキリティー的に色々ありそうですが、別処理でやってますよね。

jennie_2001
質問者

お礼

出来ました!ありがとうございます!! こういう風に使うんですね。検索しても理解できるようなページが なくて困っていました。 セキュリティ的に色々ありそうというのは、エスケープ処理 とかのことでしょうか? フォーム送信するのは、全てhiddenなので、問題ないかなって 思いますが、セキュリティの部分についてはあまり理解していません。 どういった問題があるのか教えて頂ければ幸いです。 このサイトは、ネットショップのサービスを利用していて PHP側はいじれないようです。

関連するQ&A