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

How to run if statement from PHP to run JS function

本文关键字:运行 JS 函数 语句 if PHP      更新时间:2023-09-26

我有一个PHP会话变量,它可以是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 语句?

最简单的方法之一就是像处理任何普通代码块一样处理它。在 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 响应来回应。这个答案(香草)应该给出更好的说明。

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

<script>
  <?php
    session_start();
    if($_SESSION["name"]=="value"){
      echo"document.getElementById('id').style.display='none';";
    }
  ?>
</script>
<?php
 $execJs = "false";
 session_start();
 if (isset($_SESSION['variable']) && $_SESSION['variable'] === 0) {
  $execJs = "true";
 }
?>
<script>
var id = 'whatever';
var execJs = "<?php echo $execJs ?>";
if (execJs === 'true') {
  toggle_visibility(id);
}
function toggle_visibility(id) {
    var e = document.getElementById(id);
    if(e.style.display == 'block')
        e.style.display = 'none';
    else
       e.style.display = 'block';
}
</script>

您可以使用以下技术:

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

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

如果使用这种技术,则还应创建一个名为 shouldbezero.js 的文件,该文件应包含仅在 $_SESSION['shouldbezero'] 的值等于 0 时才要运行的所有 JavaScript 代码。

<小时 />

注意:

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

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

<?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'] 的值等于 0 时才要处理的所有 CSS 代码。