在PHP会话中存储复选框值

在PHP会话中存储复选框值,php,session,checkbox,Php,Session,Checkbox,我必须编程一个包含登录名的互联网站点。我已经做到了,而且效果很好。登录后,我为4个不同类别(自然、人物、对象、符号)设置了4个HTML按钮。如果你点击4个按钮中的一个,就会出现一个带有Whatsapp表情符号的表格,旁边有一个复选框。WhatsApp表情符号的图像是本地存储的。这些表情符号的路径位于SQL数据库中。图片的编号也存储在数据库中。图片的编号也是复选框的名称。这意味着表情符号1有复选框1,表情符号2有复选框2,依此类推。如果你点击另一个类别,图片编号将从最后一个类别的最后一个表情符号的

我必须编程一个包含登录名的互联网站点。我已经做到了,而且效果很好。登录后,我为4个不同类别(自然、人物、对象、符号)设置了4个HTML按钮。如果你点击4个按钮中的一个,就会出现一个带有Whatsapp表情符号的表格,旁边有一个复选框。WhatsApp表情符号的图像是本地存储的。这些表情符号的路径位于SQL数据库中。图片的编号也存储在数据库中。图片的编号也是复选框的名称。这意味着表情符号1有复选框1,表情符号2有复选框2,依此类推。如果你点击另一个类别,图片编号将从最后一个类别的最后一个表情符号的最后一个编号继续

这一切都很好。现在来谈谈我的问题

例如:如果您选中类别“nature”中的复选框,然后单击另一个类别,然后单击back to“nature”,则复选框将不再选中

我的想法是:在会话中保存复选框。我知道它是如何工作的,但在这种情况下它绝对不起作用,因为我有4个不同的类别,我无法在会话中保存选中的复选框

我有为每个类别的另一个脚本!这些按钮会导致这个脚本

这是一张它的样子(对不起,它是德国的)

objekte.php

<?php
session_start();
?>

CSS-Stuff

    <h1>Kategorie bitte w&auml;hlen!</h1>

<form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='_GET'>
<?php
    $vorname = $_SESSION['firstname'];
    $nachname = $_SESSION['lastname'];
    echo "<p id='loggedAs'>Eingeloggt als: " .$vorname. " ".$nachname." "; 
?>
<?php
    echo "<button type='submit' name='ausloggen'>Ausloggen</button>";
?>  
</form>
</p>


<form action="natur.php" method="_GET">
<input type='submit' name='NaturVonObjekte' value='Natur'>
</form>
<form action="objekte.php" method="_GET">
<input type='submit' name='ObjekteVonObjekte' value='Objekte'>
</form>
<form action="personen.php" method="_GET">
<input type='submit' name='PersonenVonObjekte' value='Personen'>
</form>
<form action="symbole.php" method="_GET">
<input type='submit' name='SymboleVonObjekte' value='Symbole'>
</form>
<?php
    if(isset($_GET['ObjekteVonNatur']) && isset($_GET['Natur'])){
        echo "Bin hier";
        $natur = $_GET['Natur'];
        $_SESSION['naturbilder'] = $natur;
    }

    echo "<pre>";
    print_r($_SESSION);
    echo "</pre>\n";

    if(isset($_GET['ObjekteVonNatur']) || isset($_GET['ObjekteVonObjekte'])||isset($_GET['ObjekteVonPersonen'])||isset($_GET['ObjekteVonSymbole'])){

        $db_link = @mysqli_connect ("localhost", "root", "", "emojiwahl");

        if (mysqli_connect_errno()){
            printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
            exit();
        }

        $sql = "SELECT * FROM emoji WHERE EKat = 1";
        $erg = mysqli_query($db_link, $sql);

        if (! $erg){
            die('Ungültige Abfrage: Vorname nicht vorhanden' . mysqli_error("1"));
        }

        echo '<table border="1">';

        if (mysqli_num_rows($erg) != "0"){
            echo "<tr>";
            for($i = 0; $i<7; $i++){
                echo "<th>Grafik</th> <th>Auswahlbox</th>";
            }
            echo "</tr>";
        }

        for($ii = 0; $ii<7;$ii++){
            while($zeile = mysqli_fetch_assoc($erg)){
                echo "<tr>";
                echo "<td><img src='".$zeile["EPfad"]."'></img></td>";
                echo "<td><input type='checkbox' name='".$zeile["ENr"]."' ></td>";
                for($ii = 0; $ii<6; $ii++){
                    if($zeile = mysqli_fetch_assoc($erg)){
                        echo "<td><img src='".$zeile["EPfad"]."' value='".$zeile["ENr"]."'></img></td>";
                        echo "<td><input type='checkbox' value='".$zeile["ENr"]."' name='objekte[]' ></td>";
                }
            }
                echo "</tr>";
            }
        }
    }
    if(isset($_GET['ausloggen'])){
        session_destroy();
        header('Location:Anmeldung.php');
    }   
?>
kategoriebite wä;赫伦!

会话不是解决这个问题的好方法。 会话用于实际登录会话,而不是永远。 将值暂时保存在表中,并在操作完成时将其删除

德国: 这是keine gute提出的问题。
会议是在网上进行的,是在网上进行的。斯普里奇是一位占卜师。如果您只想在页面期间保留复选框的状态,我认为您最好的选择是从一开始就查询所有图像,根据它们的类别将它们放入页面上的隐藏表中,并使用JavaScript使按钮切换(显示/隐藏)表。当然,如果你有大量的图片,这不是一个好的选择

下面是一个快速说明:

var按钮、表格;
函数toggleImages(){
var按钮=这个;
//根据按钮名称是否与表ID匹配显示/隐藏表
对于(i=0,len=tables.length;iNatur
对象
叫做人身
PictureCheckbox
PictureCheckbox
PictureCheckbox
图1
图2
图3
PictureCheckbox
PictureCheckbox
PictureCheckbox
图7
图8
图9
PictureCheckbox
PictureCheckbox
PictureCheckbox
图4
图5
图6

为了帮助您解决此问题,我们必须查看一些标记和代码。对不起,这是代码@JayBlanchard。您希望将复选框的状态保留多长时间?例如,如果选中一些复选框并刷新页面,那么当您返回页面时是否应选中这些复选框?我希望保留复选框的这种状态,但用户仍按“注销”按钮,因为这样会破坏会话@MikeyI希望你是德国人,所以:我希望你是德国人。Deshalb dachte我有一个问题。。。我是网络编程新手,不理解jQuery和JavaScript之间的区别。你似乎对网络编程很有经验,如果你能帮助我,我将非常感激。谢谢:)首先,JavaScript是一种编程语言。大多数编程语言都有库,这些库是可以重用的预先编写的函数和对象的集合。对于JavaScript,是一个库。还有很多。非常感谢@米奇
<?php
session_start();
?>
<form action="natur.php" method="_GET">
<input type='submit' name='NaturVonNatur' value='Natur'>
</form>
<form action="objekte.php" method="get">
<input type='submit' name='ObjekteVonNatur' value='Objekte'>
</form>
<form action="personen.php" method="_GET">
<input type='submit' name='PersonenVonNatur' value='Personen'>
</form>
<form action="symbole.php" method="_GET">
<input type='submit' name='SymboleVonNatur' value='Symbole'>
</form>

<?php

    echo "<pre>";
    print_r($_SESSION);
    echo "</pre>\n";

    if(isset($_GET['NaturVonNatur']) || isset($_GET['NaturVonObjekte'])||isset($_GET['NaturVonPersonen'])||isset($_GET['NaturVonSymbole'])){    
        $db_link = @mysqli_connect ("localhost", "root", "", "emojiwahl");

        if (mysqli_connect_errno()){
            printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
            exit();
        }

        $sql = "SELECT * FROM emoji WHERE EKat = 0";
        $erg = mysqli_query($db_link, $sql);

        if (! $erg){
            die('Ungültige Abfrage: Vorname nicht vorhanden' . mysqli_error("1"));
        }

        echo '<table border="1">';
        if (mysqli_num_rows($erg) != "0"){
            echo "<tr>";
            for($i = 0; $i<7; $i++){
                echo "<th>Grafik</th> <th>Auswahlbox</th>";
            }
            echo "</tr>";
        }

        for($ii = 0; $ii<7;$ii++){
            while($zeile = mysqli_fetch_assoc($erg)){
                echo "<tr>";
                echo "<td><img src='".$zeile["EPfad"]."'></img></td>";
                echo "<td><input type='checkbox' value='".$zeile["ENr"]."' name='Natur[]'></td>";
                for($ii = 0; $ii<6; $ii++){
                    if($zeile = mysqli_fetch_assoc($erg)){
                        echo "<td><img src='".$zeile["EPfad"]."'></img></td>";
                        echo "<td><input type='checkbox' value='".$zeile["ENr"]."' name='Natur[]'></td>";
                    }
                }
                echo "</tr>";
            }
        }
    }

    if(isset($_GET['ausloggen'])){
        session_destroy();
        header('Location:Anmeldung.php');
    }

?>