【发布时间】:2016-06-03 00:21:58
【问题描述】:
我必须编写一个包含登录信息的互联网站点。我已经这样做了,而且效果很好。登录后,我为 4 个不同类别(自然、人物、对象、符号)设置了 4 个 HTML 按钮。如果您单击 4 个按钮之一,则会出现一个带有 Whatsapp 表情符号的表格,并在它们旁边有一个复选框。 WhatsApp 表情符号的图像是本地存储的。这些表情符号的路径位于 SQL 数据库中。图片的编号也存储在数据库中。图片的编号也是复选框的名称。这意味着表情符号 1 具有复选框 1,表情符号 2 具有复选框 2,依此类推。如果您单击另一个类别,则图片编号从最后一个类别的最后一个 Emoji 的最后一个编号继续。
这一切都很好。现在来解决我的问题。
例如:如果您选中“自然”类别中的复选框,然后单击另一个类别,然后单击返回“自然”,则不再选中已选中的复选框。
我的想法:在会话中保存复选框。我知道它是如何工作的,但在这种情况下它绝对不起作用,因为我有 4 个不同的类别,并且我无法在 Session 中保存选中的复选框。
我为每个类别都有另一个脚本!按钮指向这个脚本!
这是一张图片(对不起,是德语)PICTURE
objekte.php
<?php
session_start();
?>
CSS - 东西
<h1>Kategorie bitte wä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');
}
?>
natur.php
<?php
session_start();
?>
CSS 材料
<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');
}
?>
其他 3 个类别的代码看起来与此处几乎相同。我无法在会话中存储某些内容。从脚本“natur”中,我在脚本“objekt”中没有得到任何东西来存储会话中的复选框值。
【问题讨论】:
-
为了让我们帮助您解决这个问题,我们必须查看一些标记和代码。
-
抱歉,这里是代码@JayBlanchard。
-
您希望将复选框的状态保留多长时间?比如勾选一些复选框并刷新页面,当你回到页面时是否应该勾选这些复选框?
-
我想保留我的复选框的这种状态,但用户仍然按下“注销”按钮,因为那时我会破坏会话。 @Mikey