これが私のプログラムの目的です。
- 赤と緑の色で、ページに約5〜6個の円を表示したい.
- いずれかの丸をクリックすると。その色は BLUE に変わります。
- 次に、ページ上の他の円をクリックすると、その色も青に変わり、以前にクリックした円も青として表示されます。
- したがって、すべての円を 1 つずつクリックすると、連続するページロードで、すべての円が青色で表示されます。
- また、青い円をクリックすると、元の色が表示されます。
- このループは、ページが閉じられるまで永遠に続くはずです。
これは私が今までやってきたことです。
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 は再び緑色になります。円 1 の青色を保持したい。
正しいコードを教えてください。または、正しい方向に導いてください。たとえ小さな助けでも大歓迎です。
Javascriptなどの知識はありません。PHPとHTML/CSSしか知りません。
ありがとうございました。