def sendform = Action { request =>
val queries = request.body.asFormUrlEncodedこれで、定数queriesには、送信されたフォームの情報がまとめられたMapが保管されます。このMapから、name, mail, ageのそれぞれの送信情報を取り出します。val name_vals = queries.get("name")
val mail_vals = queries.get("mail")
val age_vals = queries.get("age")getメソッドを呼び出すことで、それぞれの値が取り出されました。後はこれらをもとに、メッセージのテキストを作成するだけです。val msg = "NAME:" + name_vals(0) +Mapから取り出された値は配列の形になっていますから、その最初の値を取り出してまとめています。基本的な流れさえわかれば、意外と簡単ですね?
", MAIL:" + mail_vals(0) +
", AGE:" + age_vals(0)
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
●Applicationクラスに追加するメソッド
def form = Action {
val title = "フォーム・サンプル"
val msg = "名前・メール・年齢を入力ください。"
Ok(views.html.index(title, msg))
}
def sendform = Action { request =>
val queries = request.body.asFormUrlEncoded
val name_vals = queries.get("name")
val mail_vals = queries.get("mail")
val age_vals = queries.get("age")
val msg = "NAME:" + name_vals(0) +
", MAIL:" + mail_vals(0) +
", AGE:" + age_vals(0)
val title ="フォーム・サンプル"
Ok(views.html.index(title, msg))
}
●index.scala.htmlの修正
@(title: String, message: String)
@main(title) {
@main(message){
<h1>@title</h1>
<p>@message</p>
<hr>
<form method="post" action="/sendform">
<input type="text" id="name" name="name"><br>
<input type="text" id="mail" name="mail"><br>
<input type="text" id="age" name="age"><br>
<input type="submit">
</form>
}
}
●routesへの追記
GET /form controllers.Application.form
POST /sendform controllers.Application.sendform
| << 前へ | 次へ >> |