如何从PHP运行if语句来运行JS函数

时间:2016-02-23 23:41:25

标签: javascript php html if-statement session-variables

我有一个PHP Session变量,可以是0或1,这个JS函数:

function toggle_visibility(id) {
    var e = document.getElementById(id);
    if(e.style.display == 'block')
        e.style.display = 'none';
    else
       e.style.display = 'block';
}

我希望只有在PHP会话变量为0时打开页面才能自动运行此函数。

我如何以及在何处创建我的If语句?

4 个答案:

答案 0 :(得分:1)

最简单的一个就是像任何普通的代码块一样处理它。在if语句中添加条件。

基本理念:

<!-- head -->

<?php if($_SESSION['whatever'] === 0): ?>
<script type="text/javascript">

function toggle_visibility(id) {
   var e = document.getElementById(id);
   if(e.style.display == 'block')
      e.style.display = 'none';
   else
      e.style.display = 'block';
}

toggle_visibility('body');

</script>
<?php endif; ?>

<!-- your HTML content, etc. -->

<!-- footer, etc. -->

如果$_SESSION['whatever'] 不是 0,则在加载完毕后,您将不会在页面中看到此JS代码块,因为请记住PHP先运行。

注意:不要忘记开始会话。

附加说明:当然,另一种方法是创建XMLHttpRequest。您需要另一个响应此请求的PHP脚本。只需回复json_encode d回复即可。这个answer(香草)应该给出更好的说明。

答案 1 :(得分:0)

你可以让PHP生成JS代码,然后你会得到类似的东西

<script>
  <?php
    session_start();
    if($_SESSION["name"]=="value"){
      echo"document.getElementById('id').style.display='none';";
    }
  ?>
</script>

答案 2 :(得分:0)

您可以使用以下技术:

<?php
    if($_SESSION['shouldbezero'] === 0) {
        echo '<script src="shouldbezero.js"></script>';
    }
?>

仅当echo的值等于$_SESSION['shouldbezero']时才会运行0语句,因此<script>标记只会添加到您的HTML代码中具体情况。

如果您使用此技术,您还应创建一个名为shouldbezero.js的文件,如果$_SESSION['shouldbezero']的值等于{{1},该文件应包含您只想运行的所有JavaScript代码}。

注意:

如果您只想根据PHP代码中的某个值加载CSS,可以使用该CSS代码执行相同的操作。

例如,您可以在0下方添加echo <link rel="stylesheet" type="text/css" href="shouldbezero.css">';,如下面的代码示例所示:

echo '<script src="shouldbezero.js"></script>';

如果这样做,您还应该创建一个名为<?php if($_SESSION['shouldbezero'] === 0) { echo '<script src="shouldbezero.js"></script>'; echo '<link rel="stylesheet" type="text/css" href="shouldbezero.css">'; } ?> 的文件,如果shouldbezero.css的值等于$_SESSION['shouldbezero'],该文件应包含您只想处理的所有CSS代码

答案 3 :(得分:0)

 define('PDF_TEMPLATE_PROD', '  
<tr class="pdf_prod" id="{::prod_name}" nobr="true">         
  <td class="pdf_prod_desc">               
    <ul class="pdf_prod_ul">
      <li><strong>{::txt_prod_price}</strong> {::prod_price}</li>            
      <li class="pdf_prod_bcode">{::prod_ean}</li>
     </ul>
  </td> 
</tr>

');