2017-04-12 15 views
1

私は彼に電話をしたときに表示されているときにメッセージのためのdivを作ろうとしています。 divスタイル(style = "display:block;")を変更するにはjavascriptを呼び出す必要がありますが、どうすればよいか分かりません。PHPコールJS関数

私はエコーで電話をしようとしましたが、今は動作します。

私はHTMLファイル<script type="text/javascript">openmsgpF();</script>を追加しようとしていますが、それも動作しません。

何か他の方法私はどのようにJavaScriptのfuntionを呼び出すことができますか?

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

MY SCRIPT:

<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がある、に問題があります読み込み中。 私はあなたのHTMLを印刷する前に、あなたが

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

をエコーし​​ていると推定。このシナリオでは、要素はまだページ上にありません。

この順序でコードを出力してみてください。bodyタグの終了前にスクリプトタグを置くことのほかに

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

は(window.onload内openmsgpfするための呼び出しを追加します)イベントページの読み込みが完了したときにトリガーされます。

条件付きで表示するには、関数をif文で囲みます。 は、メッセージdiv内のhtmlが空であるかどうかをチェックしたり、(PHPコードから)特定のCSSクラスまたは属性をメッセージ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"; 
    } 

    window.onload(function(){ 

     var showMessage = <whatever condition you evaluate>; 

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

しかし、私はすべての時間ではなく、私が欲しいときにだけその機能を呼び出す必要があります。 –

+0

条件付きでメッセージを表示する方法の解答を編集しました。 – Juan

+0

助けてくれてありがとう、しかし、私はすでに問題を解決しています。 –