実際にフォームを処理した後に投稿し、情報が処理され、エラーが発生した場合に新しい情報でページをリフレッシュすることなくフラッシュを返します。フォームが有効な場合は、たとえば別のページを参照します。PlayFramework - リフレッシュページなしでメッセージを表示
私は短時間前に自分自身をウェブに載せました。私は、ページを完全にリフレッシュせずにページ上の情報をリフレッシュすることは、将来的には役立つと思います。
I have a video in order to illustrate what i'm saying.
あなたはコードのサンプルを持っている場合は、私が取る:D
コード(別売読み):
HTML:
@module.note.render(PanelType.DANGER, "contact")
<form id="submit" class="submit-form" method="post" action="@routes.SupportController.postSupport()">
<div class="row">
<div class="col-md-6 col-sm-12">
<label class="control-label">Votre nom</label>
<input type="text" class="form-control" name="lastName" placeholder="">
</div>
...
<div class="row">
<div class="col-md-12 col-sm-12">
<label class="control-label">Votre message</label>
<p>
<textarea id="content" name="content" placeholder="Ecrivez votre message ici"></textarea>
<script type="text/javascript">
CKEDITOR.replace('content');
</script>
</p>
</div>
</div> <!-- end row -->
<hr class="invis">
<button type="submit" class="btn btn-primary">Envoyer !</button>
</form>
postSupportを()関数:
@Http.Post
public Result postSupport()
{
DynamicForm d = form.form().bindFromRequest();
FormChecker errors = new Support().getErrors(new FormValidator(d));
List<String> check = errors.check();
if(check != null && !check.isEmpty())
{
flash("contact", check.get(0));
return index();
}
Support support = new Support(d.get("lastName"), d.get("email"), d.get("content"), d.get("subject"), d.get("website"), d.get("department"));
support.insert();
return supportList();
}
getErrors()関数:あなたはそんなに
@Override
public FormChecker getErrors(FormValidator f)
{
return new FormChecker(f,
x -> x.validate("lastName", "content", "email", "subject", "website", "department"),
x -> x.isValidEmail("email"),
x -> x.isValidUrl("website"),
x -> x.isValidMinbLenght(5, "subject")
? "" : "Le sujet doit avoir une longueur minimum de 5 caractères.",
x -> x.isValidMinbLenght(30, "content")
? "" : "Le contenu du rapport doit faire minimum 30 caractères.",
x -> x.isValidMinbLenght(3, "lastName")
? "" : "Votre nom doit avoir une longueur minimum de 5 caractères.",
x -> new SupportDepartment().get("department", x.get("department")) != null
? "" : "Le département n'éxiste pas."
);
}
感謝。
フォームを送信するためのJavaScriptコードを投稿できますか? –
現時点では、私はjavascript側のために何もしていない、juste html <-> PlayFramework。私は、再生フレームワークで動作するコードのサンプルを検索します:) –