我的计划目标 1.我的网站上各显示5-6个圆圈。 2.每当点击一个圆圈时,它应该永久地变为红色或绿色。
这是我的代码:
<?php session_start(); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Let's see !</title>
</head>
<body>
<?php
define("SIZE", 5);
for ( $i = 0 ; $i < SIZE ; $i++ ) //Initializes all Color Blocks to BLUE if not clicked
{
//If Image has been clicked, it takes a Color RED or GREEN
if ( isset($_POST[$i."form"]) )
{
if($i % 2 == 0)
$_SESSION[$i] = "green.jpg";
else
$_SESSION[$i] = "red.jpg";
}
else
{ //to check if image was previously clicked.
if ( $_SESSION[$i] == "green.jpg")
$_SESSION[$i] = "green.jpg";
elseif ( $_SESSION[$i] == "red.jpg")
$_SESSION[$i] = "red.jpg";
else //if never clicked it will be made blue.
$_SESSION[$i] = "blue.jpg";
}
}
for ( $i = 0 ; $i < SIZE ; $i++ )
{
?>
<form method="POST" action="index.php">
<input type="image" width=120 src="<?php echo $_SESSION[$i]; ?>" name="mainin"/>
<input type="hidden" name="<?php echo $i."form"; ?>" value="" />
</form>
<?php }
echo session_id(); //Sessions are working correctly. No issue with them.
?>
</body>
</html>
此计划会发生什么? 只要点击一个圆圈,它就会变成红色。单击第二个圆圈时,它变为绿色,第一个圆圈显示为蓝色。然而,当点击第二个圆圈时,第一个圆圈应显示为红色,第二个圆圈显示为绿色。
就我个人而言,此计划存在逻辑或概念错误。如果有人能告诉我哪里出错了,我会很高兴。我一直试图弄清楚这几个小时。
答案 0 :(得分:2)
$ SESSION不能以数字键开头,附加类似圆圈的内容,例如:
$_SESSION['circle_'.$i]
希望有所帮助。我在我的系统上测试了它,这解决了这个问题。
答案 1 :(得分:1)
一次只能提交一个表单。如果单击第一个图像,其他图像的代码将进入else分支(“检查以前是否单击过图像”)并将颜色重置为蓝色。顺便说一句:只有所述分支中的“蓝色”行可以执行任何操作,您可以删除其余部分。此外,在将会话字段设置为“蓝色”之前,应检查会话字段是否为空。