这是我的计划的目标。
- 我想在页面上显示大约 5-6 个圆圈,颜色为红色和绿色。
- 什么时候,任何一个圆圈被点击。它的颜色变为蓝色。
- 然后,如果我单击页面上的任何其他圆圈,其颜色也应变为蓝色,并且先前单击的圆圈也应显示为蓝色。
- 因此,如果我一一点击所有圆圈,在连续页面加载中,所有圆圈都应显示为蓝色。
- 而且,当单击蓝色圆圈时,它应该显示其原始颜色。
- 这个循环应该永远持续下去,直到页面关闭。
这就是我到目前为止所做的。
define("SIZE", 5); //the no. of circles
class redblock
{
var $color;
function set_color($data)
{
$this->color = $data;
}
function get_color()
{
return $this->color;
}
function image_source()
{
$rval2 = $this->get_color();
echo $rval2;
}
function display_block()
{
$rval = $this->get_color();
echo "<img src = '",$rval,"' width=120> </br> " ;
}
}
for ($i=0 ; $i < SIZE ; $i++ ) //INIT color blocks
{ $rb[$i] = new redblock ; }
for ($i=0 ; $i < SIZE ; $i++ ) //color set
{
if(!isset($_POST[$i.'form']))
{
if ($i % 2 == 0) //even blocks are green
$rb[$i]->set_color("green.jpg");
else //odd blocks are red
$rb[$i]->set_color("red.jpg");
}
if ( $_POST[$i.'form'] == "blue.jpg" )
$rb[$i]->set_color("blue.jpg");
if(isset($_POST[$i.'form']))
$rb[$i]->set_color("blue.jpg");
} ?>
<?php
// BOTH BLOCKS when clicked repeatedly should turn to white and fro.
for ($i=0 ; $i < SIZE ; $i++ ) //display the blocks
{
echo "<form method ='post'>";
echo "<input type = 'image' width='120' src ='",$rb[$i]->image_source(),"'>";
echo "<input type='hidden' name='".$i,"form' value='",$rb[$i]-get_color(),"'>";
echo "</form>";
}
?>
发生了什么,在这段代码中。1. 假设我点击圆圈 1。它变成蓝色。2.然后我点击圈2,它变成蓝色,但圈1又变成绿色。我想要圈一个保留蓝色。
请给我正确的代码,或指导我正确的方向。甚至,一个小小的帮助将在很大程度上受到赞赏。
我对 Javascript 等一无所知。我只知道 PHP 和 HTML/CSS。
谢谢你。