-4

私のプログラムの目的:

  1. 私の index.php ファイルでは、画像が表示されます。
  2. ユーザーがその画像をクリックすると、新しい画像が表示されます。
  3. 新しい画像をクリックすると、別の新しい画像が表示されます。

私は今まで何をしましたか?

<?php
$mycolor = array("red.jpg", "green.jpg", "blue.jpg");
$i = 0;
$cc = $mycolor[$i++];
?>


<form method="post" action="index2.php">
<input type="image" src="<?php echo $cc; ?>">
</form>

私はエラーが何であるかを知っています。ページがリロードされるたびに、変数 $i はゼロに初期化されます。どうすれば修正できますか。画像がクリックされた後、増加した値を保持するにはどうすればよいですか?

また、私はJavascriptの知識がありません。可能であれば、phpの観点から説明してください。

4

3 に答える 3

2

$ieg を覚えるには、さまざまな可能性があります。

$_GET: http://php.net/manual/en/reserved.variables.get.php

クッキー: http://php.net/manual/en/function.setcookie.php

セッション: http://php.net/manual/en/features.sessions.php

この問題でもフォームを使用する必要はありません。画像をハイパーリンクでラップし、パラメーターをインクリメントして URL を変更するだけです (index.php?i=1、index.php?i=2、index.php?i=3 など)。

于 2012-09-20T15:20:07.833 に答える
1
<?php
$mycolor = array("red.jpg", "green.jpg", "blue.jpg");

if (isset($_POST['i'])) { // Check if the form has been posted
  $i = (int)$_POST['i'] + 1;   // if so add 1 to it - also (see (int)) protect against code injection
} else {
  $i = 0;  // Otherwise set it to 0
}
$cc = $mycolor[$i]; // Self explanatory
?>


<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="image" src="<?php echo $cc; ?>">
<input type="hidden" name="i" value="<?php echo $i; ?>">  <!-- Here is where you set i for the post -->
</form>
于 2012-09-20T15:30:39.270 に答える
0

セッション、Cookie、または POST 変数を使用してインデックスを追跡できますが、最後のインデックスを覚えて +1 できるようにする方法もあります。別の (非表示の) 投稿変数を使用した例を次に示します。

<?php

    // list of possible colors
    $mycolor = array('red.jpg', 'green.jpg', 'blue.jpg');

    // if a previous index was supplied then use it and +1, otherwise
    // start at 0.
    $i = isset($_POST['i']) ? (int)$_POST['i'] + 1 : 0;

    // reference the $mycolor using the index
    // I used `% count($mycolor)` to avoid going beyond the array's
    // capacity.
    $cc = $mycolor[$i % count($mycolor)];
?>

<form method="POST" action="<?=$_SERVER['PHP_SELF'];?>">

  <!-- Pass the current index back to the server on submit -->
  <input type="hidden" name="id" value="<?=$i;?>" />

  <!-- display current image -->
  <input type="button" src="<?=$cc;?>" />
</form>
于 2012-09-20T15:14:04.597 に答える