- ベストアンサー
※ 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}>と記述してみましたが、エラーになります。予約変数はこのような使い方ができないのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
<{section name=cnt loop=$kosu}> <{assign var="str" value='address'|cat:$smarty.section.cnt.iteration}> <{$smarty.post.$str}> <{/section}> これでいけますよ。(もう少しだった。 $kosuもテンプレート側でいけますがなるべくPHP側でやったほうがいいです。 セキリティー的に色々ありそうですが、別処理でやってますよね。
お礼
出来ました!ありがとうございます!! こういう風に使うんですね。検索しても理解できるようなページが なくて困っていました。 セキュリティ的に色々ありそうというのは、エスケープ処理 とかのことでしょうか? フォーム送信するのは、全てhiddenなので、問題ないかなって 思いますが、セキュリティの部分についてはあまり理解していません。 どういった問題があるのか教えて頂ければ幸いです。 このサイトは、ネットショップのサービスを利用していて PHP側はいじれないようです。