仅使用 PHP 作为事件侦听器使 div 可见

Make div visible using only PHP as event listener

我正在测试设置一个 "button event listener",它会在单击按钮时显示一个隐藏的 div。下面的代码有效,我的问题更多是是否有其他方法可以解决这个问题,只有 HTML/CSS 和 PHP ?

我完全知道 "button event listener" 在这种特殊情况下更像是一个 "superglobal $_POST variable" 检查器。

测试的目的更多是看看按钮按下是否可以从 PHP 本身扫描(跳过其他逻辑,如 JS 或 jquery 等)。

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Test</title>
</head>
<body>

<!-- Styling -->

<style>
.myDiv {display:none;}
</style>

<!-- Form -->

<form method="post">
  <button type="submit" name="button">Show div</button>
</form>

<div class="myDiv">MyDiv text...</div>

<pre>

<?php

// Logics

// Button event listener

print_r($_POST);

if(isset($_POST['button'])) {
  echo "You pressed the button!";
  echo "<style> .myDiv {display:block} <style>";
}

?>

</body>
</html>

首先检查是否是 post 请求并使用 php 变量进行可见性:

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Test</title>
</head>
<body>
    <?php
        $display = 'none';
        if(!empty($_POST)) {
            if(array_key_exists('button', $_POST)) {
                $display = 'block';
            }
        }
    ?>
    <style>
        .myDiv {display:<?php echo $display;?>;}
    </style>

<!-- Styling -->



<!-- Form -->

<form method="post">
  <button type="submit" name="button">Show div</button>
</form>

<div class="myDiv">MyDiv text...</div>

<pre>

<?php
print_r($_POST);

// Logics

// Button event listener

?>

</body>
</html>