• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Smartyを用いたコードの書き方について質問です )

Smartyを用いたコードの書き方についての質問

このQ&Aのポイント
  • Smartyを使ったコードの書き方について質問です。MySQLから取得したデータをシンプルに表示する方法を教えてください。
  • 質問者はSmartyの初心者であり、地域ごとのデータを表示する際に問題が生じています。地域ごとに区切りを入れながらデータを表示する方法を教えてください。
  • 質問者が現在試行中のコードを示し、地域と都道府県のデータを取得して表示していることがわかります。

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

  • ベストアンサー
  • kalkichi
  • ベストアンサー率64% (22/34)
回答No.1

prefecに地域の番号を持たせて、$areaのループの中で現在の地域の番号と一致する$prefecデータのみを表示させていく方法もありますが、私ならテンプレート側は極力制御構文を書きたくないので、地域毎の配列をそれぞれ用意するか、$都道府県名['データ数'] の連想配列をテンプレに渡して、テンプレ側は47都道府県をベタに書きます。 都道府県は頻繁にかわるものではありませんのでベタ書きの方がデザイナーにも優しいかと多います。

misoshio
質問者

お礼

ご回答いただいた内容をもとに、都道府県に地域データを持たせて試行錯誤した結果、以下のコードにたどり着きました。 ---area.tpl--- //地域をループ {{section name=area loop=$area}} <a href='search.php?areaid={{$area[area].areaid}}'>{{$area[area].areaname}}</a> (全{{$area[area].areacnt}}件)</div> //地域の中で都道府県をループ {{section name=prefec loop=$prefec}} {{if $area[area].areaid == $prefec[prefec].areaid}} <a href='search.php?prefecid={{$prefec[prefec].prefecid}}'>{{$prefec[prefec].prefecname}}</a> ({{$prefec[prefec].prefeccnt}}件)</div> {{/if}} {{/section}} {{/section}} -------- 初心者なのでこの書き方でいいのかどうかはよくわかりませんが、一応イメージ通りの形にはなりました。 ベタ書きのほうも試したのですが、あまりに冗長になってしまうため上記のほうが個人的にはしっくりきます。 ともあれ、ご回答ありがとうございました。

関連するQ&A