2017-04-12 83 views
1

我試圖讓一些div的消息時,只是當我打電話給他。 我需要調用JavaScript來改變div風格(style =「display:block;」),但我不知道如何。PHP調用JS函數

我嘗試呼叫回聲,但現在工作。

我嘗試添加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>'; 
} 

我的留言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> 
+0

的可能的複製[如何從PHP調用JavaScript函數?(http://stackoverflow.com/questions/1045845/how-to-call-a-javascript-function-from-php) –

+0

@YuvalPruss我試過不起作用。 –

+1

可以寫一個乾淨的代碼人@RobertGlavaš不知道你爲什麼改變編輯回你的不可讀代碼 –

回答

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/

+0

你好,謝謝!很明顯,我的問題是爲了...感謝您的幫助! –

0

除了把腳本標籤body標籤結束前的添加呼叫在window.onload裏面openmsgpf()事件爲了在頁面加載完成時觸發它。

要有條件地顯示,用if語句包圍函數。 可以檢查消息div中的html是否爲空,或者檢查是否包含(來自php代碼)消息div中的特定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> 
+0

但是我只需要在需要時調用該函數,而不是全部時間。 –

+0

我編輯瞭如何有條件地顯示消息的答案。 – Juan

+0

感謝您的幫助,但我已經解決了問題。 –