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

标签 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 session 变量 = 0 时,该函数才能在页面打开时自动运行。

如何以及在哪里可以创建我的 If 语句?

最佳答案

最简单的方法之一就是像任何普通代码块一样处理它。在 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 首先运行。

注意:不要忘记开始 session 。

附加说明:当然,另一种方法是创建 XMLHttpRequest。您需要另一个 PHP 脚本来响应此请求。只需使用 json_encoded 响应即可。这个answer ( Vanilla )应该给出更好的说明。

关于javascript - 如何从 PHP 运行 if 语句来运行 JS 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35590510/

相关文章:

php - 无法将 C :/php/php7apache2_4. dll 加载到服务器:%1 不是有效的 Win32 应用程序

javascript - 将页面数据保存到本地存储中

javascript - 在服务器上调用 Collection.insert 时为 "Meteor code must always run within a Fiber"

php - PDO - 插入数据库后获取行的最佳方式

javascript - 用@标记用户

php - htaccess 中的 AddType 导致页面下载

javascript - 使用 jquery 或 iframe 加载外部内容?

javascript - AngularJS 表单自定义验证。无法读取未定义的属性 '$validators'

javascript - Angular $watch 数组并从服务器更新

javascript - 使拖放的元素可放置,同时仍可拖动