- ベストアンサー
Smartyでセレクトボックスが選択された時に値を表示する方法
- Smartyを使用してセレクトボックスが選択された際に、値を表示する方法について質問です。
- 具体的には、セレクトボックスの選択値をキーにデータベースに接続し、その値を取得して<div></div>内に表示することができるかということです。
- また、その場合にはプラグインクラスを作成して表示することができるのかも知りたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あまり難しく考えなくても 選択する度にPHP内でDB接続をして値をとってきて テンプレート内に表示することは可能です 質問者さんのPHP内のデータベース接続が どういった記述なのかわからないので データベース接続部分は省略していますが そちらもわからないようであれば 補足もしくは別に質問するのがいいでしょう 簡単な手ほどき的なものになりますが 更新させるためのサンプルを作ってみましたので やってみてください PHPとSmartyを使用しているのであれば理解できる内容です テンプレートの記述(index.tplとして作成してみました) <html> <head> <title>test</title> <body> <form method="post" action="index.php"> <select name="hobby" onChange="submit(this.form)"> <option>スポーツ</option> <option value="0">卓球</option> <option value="1">サッカー</option> <option value="2">バレー</option> <option value="3">リセット</option> </select> </form> <div> {if isset($str)} {$str} {/if} </div> </body> </html> php内の記述 if(isset($_POST['hobby'])){ #本来ならswitch文の内容はいらなく #DBから値をもってきてテンプレートに送るだけの処理になります switch ($_POST['hobby']){ case 0: $smarty -> assign('str', '卓球'); break; case 1: $smarty -> assign('str', 'サッカー'); break; case 2: $smarty -> assign('str', 'バレー'); break; } } $smarty -> display("index.tpl");
その他の回答 (1)
- foreach
- ベストアンサー率51% (43/84)
それはPHPでもSmartyでもなくJavaScriptの分野だと思います。 参考URLはjQueryのものですが、一番下にサンプルがありSELECTタグの選択値に応じてDIVの内容を変更してます。 > セレクトが選択されたら、それをキーにdbに接続して値をとってき、 をしたいならAjaxで取ってくるか、あらかじめDBの値をHTMLに書き出しておく必要があるので難易度が上がります。 まずはSELECTの切り替えでDIVを入れ替えるとこまで実装するのが良いでしょう。 それと、 ><selection name="hobby"> selectionじゃなくてselectの間違いだと思います。
お礼
ありがとうございました。