Как отобразить модальное окно, когда проверка завершена?

Я сделал форму для подписки на новостную рассылку на своем нижнем веб-сайте. Код для этого:

<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>

Когда я нажимаю кнопку «Отправить», вызывается метод createAction из NewsletterController, который выглядит следующим образом:

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");
}
}

Теперь, после того, как я сделал все проверки и вставил данные в базу данных, я не хочу переходить на другую веб-страницу, я хочу отобразить всплывающее окно с сообщением подтверждения, если все в порядке, или сообщение об ошибке, если произошла ошибка. Что-то вроде этого:

<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">&times;</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>

Но я не знаю, как запустить модальное после всех операций и проверки. Может кто-нибудь помочь, пожалуйста?

-1

Решение

Один из самых простых способов, которые я могу придумать, — это использование JavaScript. После успешной проверки вы можете вызвать функцию javascript, например:

 echo "<script type="text/javascript">the_function_you_want_to_call_from_javascript_file();
</script>";

Чем в вашем javascript-файле вы можете вызвать модал и сделать свою собственную настройку.
Надеюсь, поможет 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]