1

これが私のプログラムの目的です。

  1. 赤と緑の色で、ページに約5〜6個の円を表示したい.
  2. いずれかの丸をクリックすると。その色は BLUE に変わります。
  3. 次に、ページ上の他の円をクリックすると、その色も青に変わり、以前にクリックした円も青として表示されます。
  4. したがって、すべての円を 1 つずつクリックすると、連続するページロードで、すべての円が青色で表示されます。
  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 は再び緑色になります。円 1 の青色を保持したい。

正しいコードを教えてください。または、正しい方向に導いてください。たとえ小さな助けでも大歓迎です。

Javascriptなどの知識はありません。PHPとHTML/CSSしか知りません。

ありがとうございました。

4

2 に答える 2

1

$_SESSION変数を使用するか、 setcookie()を使用して Cookie を設定し、その後のページ読み込み時に $_COOKIE で取得することができます。どちらの方法でも、値を一時的に保存できます。ブラウザを閉じた後に値を消したい場合は、セッションが最適です。Cookie は、有効期限が切れるか、ユーザーによって消去されるまで保持されます。

于 2012-09-22T16:17:07.813 に答える
1

を使用$_SESSIONして円の各状態を保存し、連続するページの読み込みで使用できます。

于 2012-09-22T16:10:52.363 に答える