PHP调用JS函数

时间:2017-04-12 11:43:45

标签: javascript php

当我打电话给他时,我正在尝试为消息制作一些div。 我需要调用javascript来改变div风格(style =“display:block;”),但我不知道如何。

我尝试使用echo调用,但现在正在工作。

我尝试添加HTML文件<script type="text/javascript">openmsgpF();</script>,但这也不行。

其他一些方法如何调用javascript函数?

我的PHP文件:

if (isset($_POST['newsletter'])){
    $message='Thanks for signig up on our newsletter!';
    echo '<script type="text/javascript">openmsgpF();</script>';
}

MY MESSAGE DIV:

<div id="message-p" style="display:none;background-color: green;color: rgb(255, 255, 255);text-align: center;position: fixed;top: 0px;left: 0px;z-index: 999999;width: 100%;    font-size: 25px; font-style: normal;letter-spacing: 1px;height: 100px;padding-top: 30px;letter-spacing: 1px;">
    <?php echo $message;?>
    <div id="close_msg" style="position: absolute;top: 0;right: 10px;">
        <a style="color: #c6c6c6;" href="javascript:void(0);" onclick="closemsgF()">X</a>
    </div>
</div>

我的脚本:

 <script>
    function closemsgF()
    {
        document.getElementById("message-p").style.display = "none";
        document.getElementById("message-n").style.display = "none";
    }

    function openmsgpF()
    {
        document.getElementById("message-p").style.display = "block";
    }

    function openmsgnF()
    {
        document.getElementById("message-n").style.display = "block";
    }
</script>

2 个答案:

答案 0 :(得分:2)

您的javascript正在加载的订单存在问题。 我认为你正在呼应

<script type="text/javascript">openmsgpF();</script>
在打印HTML之前

。在那种情况下,元素尚未出现在页面上。

尝试使用此订单输出您的代码:

<?php
$message = '';
if (isset($_POST['newsletter'])){
    $message='Thanks for signig up on our newsletter!';
}
?>
<div id="message-p" style="display:none;background-color: green;color: rgb(255, 255, 255);text-align: center;position: fixed;top: 0px;left: 0px;z-index: 999999;width: 100%;    font-size: 25px; font-style: normal;letter-spacing: 1px;height: 100px;padding-top: 30px;letter-spacing: 1px;">
    <?php echo $message;?>
    <div id="close_msg" style="position: absolute;top: 0;right: 10px;">
        <a style="color: #c6c6c6;" href="javascript:void(0);" onclick="closemsgF()">X</a>
    </div>
</div>
<script>
    function closemsgF()
    {
        document.getElementById("message-p").style.display = "none";
        document.getElementById("message-n").style.display = "none";
    }

    function openmsgpF()
    {
        document.getElementById("message-p").style.display = "block";
    }

    function openmsgnF()
    {
        document.getElementById("message-n").style.display = "block";
    }
</script>
<?php
if (isset($_POST['newsletter'])){
    echo '<script type="text/javascript">openmsgpF();</script>';
}
?>

https://jsfiddle.net/de6ha4nf/

答案 1 :(得分:0)

除了将body标记放在body标记的末尾之外,还要在window.onload()事件中添加对openmsgpf的调用,以便在页面完成加载时触发它。

要有条件地显示,请使用if语句包围该函数。  可以检查消息div中的html是否为空,或检查是否已在消息div中包含(来自php代码)特定的css类或属性。有很多方法。

<script>
    function closemsgF()
    {
        document.getElementById("message-p").style.display = "none";
        document.getElementById("message-n").style.display = "none";
    }

    function openmsgpF()
    {
        document.getElementById("message-p").style.display = "block";
    }

    function openmsgnF()
    {
        document.getElementById("message-n").style.display = "block";
    }

    window.onload(function(){

        var showMessage = <whatever condition you evaluate>;

        if(true === showMessage){
            openmsgpF();
        }
    });
</script>