Открытие модального окна "с использованием" PHP

Я создаю систему входа в систему на PHP, и я стараюсь сделать ее немного приятнее.

Когда вы выходите из системы, вы перенаправляетесь обратно в index.php. Как это:

header("loaction: index.php?logout=true") 

Это делает URL-адрес похожим на www.mysite.com/index.php?logout=true. Затем я использую следующий код:

 if(isset($_GET['logout'])) { $logoutvalue = $_GET['logout']; if($logoutvalue = "true") { $notification = "You've been logged out!"; } 

чтобы получить значение выхода из URL-адреса и сделать что-то с ним.

У меня есть небольшое всплывающее окно, в котором будет отображаться значение переменной уведомления. В этом случае это «Вы вышли из системы!» Мой вопрос: как получить модальное окно для отображения при загрузке страницы и когда url равен /index.php?logout=true?

Все комментарии, ответы и предложения приветствуются!

Благодаря! – Райан

Прежде всего,

Вы не можете напрямую открывать модальное окно с помощью PHP. Это можно сделать только путем обмена переменными (через JSON или XML) или вложением условий PHP прямо в вашу разметку.

PHP и JavaScript независимы.

Мой вопрос: как получить модальное окно для отображения при загрузке страницы и когда url равен /index.php?logout=true?

Есть два способа добиться этого.
Во-первых : хорошо использовать внедрение PHP-условий прямо в разметку.

Второй : <input type="hidden" id="showModal" /> скрытый ввод, например ( <input type="hidden" id="showModal" /> ), а затем проверьте, существует ли он через сам JavaScript.

Например:

 <!DOCTYPE html> <html> <head> <script type="text/javascript"> window.onload = function(){ if ( document.getElementById('showModal') ){ alert('Box'); //replace with your own handler } } </script> </head> <body> <?php if ( isset($_GET['logout']) && $_GET['logout'] === 'true' ): ?> <input type="hidden" id="showModal" /> <?php endif;?> </body> </html> 

Вы ищете что-то вроде:

 <script> <?php if(isset($_GET['logout']) && $_GET['logout'] === 'true'){ echo 'alert("You\'ve been logged out!");' } ?> </script> 

EDIT: Я считаю, что вы ищете что-то подобное для модального окна (используя jQuery)

 <?php if(isset($_GET['logout']) && $_GET['logout'] === 'true'){ $message = "You've been logged out!"; ?> <script> $(function() { $("#dialog").dialog();//if you want you can have a timeout to hide the window after x seconds }); </script> <div id="dialog" title="Basic dialog"> <p><?php echo $message;?></p> </div> <?php } ?> 

Я знаю, что это старый пост, но чтобы помочь кому-то в будущем с похожим кветом, я думаю, что следующее может помочь в правильном направлении (я сам сам тестировал код ниже, поэтому, пожалуйста, внесите корректировки).

 <?php if(isset($_GET['logout']) && $_GET['logout'] === 'true'){ $message = "You've been logged out!"; ?> <script> $(function() { $('#myModal').modal('show'); }); </script> <div class="modal fade" id="myModal" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">&times;</button> <h4 class="modal-title">Edit Data</h4> </div> <div class="modal-body"> <div class="fetched-data"><?php $message ?></div> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div> </div> </div> </div> <?php } ?> 

Лучший способ сделать это, используя шаблон PRG .

index.php

1. Создайте тело для модального контента в HTML

 <div id=modal></div> 

2. Стиль вашего #modal элемента

 #modal { position: fixed; display: none; /*important*/ color: white; text-align: center; z-index: 1000; width: 100%; height: 80px; top: 50%; left: 50%; transform: translate(-50%,-50%); background: crimson; line-height: 2; } 

3. Определите функцию, как показывать и исчезать с помощью jQuery

 'use strict'; window.jQuery ? $.fn.notify = function(interval) { let el = $(this), text = el.text(), modal =()=> { // this will fire after the interval has expired el.fadeOut(), clearInterval(timer) }, timer = setInterval(modal,interval); !text.match(/\S+/) || el.text('') // this will fire when modal box contains text .append('<h3>'+text+'</h3>') .show(); } : alert('jQuery required.'); 

4. Присоедините .notify() к селектору jQuery

 $(()=>{ $('#modal').notify(1500); // 1500 is the interval }); 

5. Вставьте уведомление, отправленное с PHP внутри элемента #modal

 <div id=modal> <?= @$_SESSION["notify"]; // if this variable is not set, nothing will happen unset($_SESSION["notify"]); ?> </div> с <div id=modal> <?= @$_SESSION["notify"]; // if this variable is not set, nothing will happen unset($_SESSION["notify"]); ?> </div> 

6. Сделайте запрос $_GET , выполнив простой метод PRG

 <a href='parse.php?logout'>Logout</a> 

parse.php

7. Вернуть значение с помощью PHP в переменной $_SESSION

 if (isset($_GET["logout"])) { $_SESSION["notify"] = "You have been logged out."; header("Location: index.php"); } 

Это хорошая практика. Обратите внимание, что вы должны установить session_start(); в верхней части ваших файлов.

Или вы даже можете написать скрипт внутри оператора if:

 <?php if(isset($_GET['logout']) && $_GET['logout'] === 'true'){ ?> <script type="text/javascript> window.open(yourhtml); </script> </php } else { // may be some other script } ?> 

Загрузите библиотеку Modal JS http://simplemodal.plasm.it

и использовать условие

 if(isset($_GET['logout'])) { $logoutvalue = $_GET['logout']; if($logoutvalue = "true") { code to open the Modal as in the JS library..... }