打开一个模态窗口“使用” PHP(Opening a Modal Window “using” PH

2019-07-19 02:16发布

我PHP创建一个登录系统,我想使它更好一点。

当你退出,你重定向回index.php文件。 像这样:

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

这使得网址看起来像www.mysite.com/index.php?logout=true。 然后我用下面的代码:

if(isset($_GET['logout'])) {

$logoutvalue = $_GET['logout'];

if($logoutvalue = "true") {
$notification = "You've been logged out!";  
}

来从URL注销的价值,并用它做什么。

我有一个会显示通知变量的值小的弹出式视窗。 在这种情况下,它是“你被注销!” 我的问题是如何得到的模态窗口时的网址与/index.php?logout=true显示在页面加载时和?

所有评论,答案和建议是非常感谢!

谢谢! - 莱恩

Answer 1:

首先,

直接不能“用PHP模式窗口打开”。 您只能只能通过交换变量(通过JSON或XML)做到这一点,或嵌入PHP条件直接进入您的标记。

PHP和JavaScript是独立的。

我的问题是如何得到的模态窗口时的网址与/index.php?logout=true显示在页面加载时和?

还有,你可以做到这一点有两种方式。
第一 :很好地利用嵌入PHP条件对入标记。

第二 :在什么地方隐蔽输入,像( <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>


Answer 2:

你是正在寻找类似:

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

编辑:我相信你正在寻找的东西像这样一个模式窗口(使用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 } ?>


Answer 3:

我知道这是一个古老的职位,但帮助别人在将来有类似的任务,我想下面可以帮助进入正确的方向(我已经测试了下面的代码自己,所以请进行调整)。

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


Answer 4:

最好的方法使用Get做到了这一点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 in milliseconds
})

5.将来自PHP发送的内部的通知#modal元件

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

6.执行一个简单的$_GET要求

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


这是很好的做法。 一旦注销请求发送到PHP,它会重定向到索引页,结果在一个会话变量。 该PRG模式并不总是需要一个POST请求。 本实施例中发送的GET请求这是确定用于注销。 请注意,你必须把session_start(); 在你的文件的顶部。



Answer 5:

好了,你现有的代码是这样的片段,和您遇到的问题是,你想显示/与之PHP触发一个jQuery /引导模式,但jQuery的/ JS尚未加载(所以你会得到一个“$未定义”的错误)。

当你说“一个小弹出式视窗”我假设你的意思是一个引导型模式。

if(isset($_GET['logout'])) {
  $logoutvalue = $_GET['logout'];

  if($logoutvalue = "true") {
    $notification = "You've been logged out!";  
  }
}

我所做的是PHP代码块移动到PHP文件的末尾,jQuery的(等)之后,并有一个包括,所以它看起来像这样(假设你的模式的名称是ID =“logoutModal”):

logout.php

if(isset($_GET['logout'])) {
  $logoutvalue = $_GET['logout'];

  if($logoutvalue = "true") {
    include("logout-modal.php");  
  }
}

注销,modal.php

<?php ?>
  <script>
    $('#logoutModal').modal('show');
  </script>
<?php ?>

不是100%肯定这回答你的问题,但是这对我的作品。 希望这可以帮助。



Answer 6:

或者,你甚至可以写里面的脚本if语句:

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


Answer 7:

请下载模态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..... 
}


文章来源: Opening a Modal Window “using” PHP