-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

也没有必要使用表格来解决这个问题。只需用超链接包装图像并通过增加参数(index.php?i=1、index.php?i=2、index.php?i=3 等)来修改 url。

于 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 回答