-1
フッタのウェブサイトでニュースレターの購読用のフォームを作成しました。このためのコードは次のとおりです。私はすべての検証を行い、挿入した後、今検証が完了したら、モーダルウィンドウを表示する方法は?
public function createAction(){
if($_SERVER["REQUEST_METHOD"] == "POST"){
$validation = true;
$error = "";
if(trim($_POST["subscriber"]) == ""){
$validation = false;
$error = "The field 'subscriber' is required!";
}
if(trim($_POST["subscriber"]) != ""){
if(!preg_match('/^([a-z0-9]+([_\.\-]{1}[a-z0-9]+)*){1}([@]){1}([a-z0-9]+([_\-]{1}[a-z0-9]+)*)+(([\.]{1}[a-z]{2,6}){0,3}){1}$/i', $_POST["subscriber"])){
$validation = false;
$error = "The field 'subscriber' must contain a valid input!";
}
}
if($validation){
$checkSubscriber = $this->newsletterRepository->checkSubscriber($_POST["subscriber"]);
if(!$checkSubscriber){
$newsletter = new Newsletter();
$newsletter->setEmail($_POST["subscriber"]);
$result = $this->newsletterRepository->insert($newsletter);
if(!$result){
$error = "There was an error in the newsletter
}
}else{
$error = "The e-mail already registered for newsletter!";
}
}
}else{
URL::redirect("Restaurants", "listAll");
}
}
:
<h4>Newsletter Subscribe:</h4>
<form method="POST" action="<?php URL::show("Newsletter", "create") ?>">
<div class="col-md-12">
<div class="input-group">
<input type="text" class="form-control" name="subscriber" placeholder="[email protected]">
<input type="submit" class="btn btn-primary" value="Subscribe">
</div>
</div>
</form>
私は送信ボタンをクリックして次のようになり、そのNewsletterControllerからcreateActionメソッドを呼び出します。データベース内のデータ、別のWebページに行きたくない場合は、すべてが正常だった場合は確認メッセージが表示され、エラーがあった場合はエラーメッセージが表示されます。このような何か:
<div class="modal fade bd-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Newsletter Subscription</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="container-fluid">
<?php if($result): ?>
<p style="color:green">Newsletter subscription successfuly!</p>
<?php elseif($error): ?>
<p style="color:red"><?php echo $error; ?></p>
<?php endif; ?>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
しかし、私はどのようにすべての操作と検証が完了した後にモーダルを引き起こすのか分かりません。誰でも助けてくれますか?
最高の解決策はおそらくJavaScriptを使ってそれを行うことですが、あなたはJavaScriptと一緒にフォームを送信しなければならないとにかく、あなたのコードであまりにも多くを変更せずに同じページをリロードして、フォームの代わりにメッセージの部分を表示する必要があります。 – Sheki
レコードがテーブルに挿入されると通知がありますか? –
テーブルのデータを挿入する方法ではなく、モーダルを表示する方法を尋ねました – Ciprian