html php 中的复选框 onChange 方法

html checkbox onChange methode in php

这是我的问题,我只知道 html 和 php,我不知道如何使用 javascript...所有关于我的问题的解决方案似乎在 javascript 中得到解决,我想知道是否有一种方法可以用 php 来解决,这样我就可以理解我在做什么。

我想在我的页面的角落(例如"hide information")放置一个复选框,该复选框会在检查时自动刷新页面,并且会在页面上隐藏信息。

我目前做的是:

<?php 
if(isset($_GET['condition']))
    $_SESSION['condition'] = true;
else
    $_SESSION['condition'] = false;
?>
...
...
<form>
    <input type="checkbox" name="hide" value="1" onChange="this.form.submit()" <?php if($_SESSION['hide']) echo "checked";?> > hide information
</form> 

我面临两个问题:

  1. 第一个是我希望复选框在刷新页面时保持 checked/unchecked。我用我的 php 代码解决了这个问题,但确实存在有更好的办法。

  2. 选中该框后,页面刷新时只有 "hide=1" 作为 url 参数,但我很想保留之前的所有其他参数页面已刷新。有没有办法刷新页面并保留所有参数,同时知道该框是 checked/unchecked ?

感谢您的帮助,抱歉我的知识不足。

我认为您尝试解决问题 1 的方式没有任何问题。

关于URL问题2,要么把session_start();在页面顶部使会话正常工作。

或者在此页面的表单中隐藏输入并回显前几页的 POST 值。

    <form action="" method="post">
       <input type="hidden" name="condition" value="<?php echo $_POST['condition']; ?>" />
       <!-- have hidden inputs from previous page here, plus your checkbox to retain post values from the previous page -->
    </form>

尽管我建议 POST 为此,您可以执行 GET,尽管它会像这样有点混乱:

<form action="thispage.php?condition=<?php echo $_GET['condition'];?>" />

关于问题的第二点,您可以使用以下代码将 POST(或 GET)数组移动到 SESSION 数组并返回:

if(isset($_POST) & count($_POST)) { $_SESSION['post'] = $_POST; }
if(isset($_SESSION['post']) && count($_SESSION['post'])) { $_POST = $_SESSION['post']; }

我用这个做的完全一样。当我重新加载页面时,我会保留发布的值。

关于第一点,您已经在正确的道路上。