2016-09-21 4 views
0

JavaScript関数の条件文をjavascriptの項目に追加する必要がある状況に遭遇しました。JavascriptをPHPエコーに変換してPHP条件文を挿入する

ここではサンプルコードです:私はしばらくの間、このことについて考え、そして最終的に「オンラインスクリプトにつまずい

if (bp_current_user_can('bp_moderate') || $loggedinuserid == $userid) { 
//conditional statement for above javascript 
} 

<script type="text/javascript"> 
$(window).bind("load", function() { 
$("div.mejs-button.mejs-playpause-button.mejs-play > button").trigger('click'); 
}); 
    </script> 

そして、私は条件文でこれをラップする必要がありますjavascriptをphpエコーに変換する 'converter'サイトです。だから今、私のコードは以下の通りです:

<?php 
if (bp_current_user_can('bp_moderate') || $loggedinuserid == $userid) { 
echo " <script type=\"text/javascript\">\n"; 
echo "$(window).bind(\"load\", function() {\n"; 
echo " $(\"div.mejs-button.mejs-playpause-button.mejs-play > button\").trigger('click');\n"; 
echo "});\n"; 
echo "</script>\n"; 
} 
?> 

そして、これは私があまりにもそれを望むように動作しますが、私はjavascriptのコードの大きな作品でこれを適用しようとしてではなく、特にmessy-ようだ、と私は希望していた場合後でJavaScriptコードを編集するこれはjavascriptでPHPの条件文をラップするための私の唯一のオプションですか?あなたが行うことができます

答えて

1

直接
<?php if (bp_current_user_can('bp_moderate') || $loggedinuserid == $userid):?> 
<script type="text/javascript"> 
    $(window).bind("load", function() { 
    $("div.mejs-button.mejs-playpause-button.mejs-play > button").trigger('click'); 
    }); 
</script> 
<?php endif; ?> 
+0

私はこれを行うには考えていなかったと信じてすることはできません!ありがとうございました – bbruman

1

だけで終了PHPモードと出力あなたのjs ..

<?php 
if (bp_current_user_can('bp_moderate') || $loggedinuserid == $userid) { 
//exit PHP to output pure HTML or JS 
?> 
<script type="text/javascript"> 
$(window).bind("load", function() { 
$("div.mejs-button.mejs-playpause-button.mejs-play > 
button").trigger('click'); 
}); 
</script> 
<?php } // back into PHP mode for closing curly 
0

PHPのスクリプトを埋め込むための別のオプションは、ヒアドキュメントを使用することで、このようになりますwhiich ...

$scripts = <<<CODE 
<script type="text/javascript"> 
$(window).bind("load", function() { 
$("div.mejs-button.mejs-playpause-button.mejs-play > 
button").trigger('click'); 
}); 
</script> 
CODE; 

次に、変数をエコーすることができます。 if(something()) echo $scripts;

最後にCODE;を余白に合わせて配置する必要があります。あなたがそれの前に空白を持っているなら、それはヘレドックを破るでしょう。

は... anotehr方法は

ob_start(); 
?> 
<script type="text/javascript"> 
$(window).bind("load", function() { 
$("div.mejs-button.mejs-playpause-button.mejs-play > 
button").trigger('click'); 
}); 
</script> 
?> 
$scripts = ob_get_clean(); 

はそれと同じようエコー出力バッファを使用することです..yet if(something()) echo $scripts;

+0

面白いです。ありがとう – bbruman

関連する問題