试图使用PHP在网页中制作一个简单的图像“画廊”

时间:2014-04-20 22:08:02

标签: php html

我正在努力建立一个基本的画廊来放置一个网页。到目前为止,这是我的代码:

<?
if($_REQUEST['cho'] == 'next')
{
  $img = $img + 1;
}
else
if($_REQUEST['cho'] == "previous")
{
  $img = $img - 1;
}
else
if(!$_REQUEST['cho'] == 'next')
{
  if(!$_REQUEST['cho'] == "previous")
  {
    $img = 1;
  }
}
?>

<center>
<table border =1>
<tr>
<td>
<form action="image.php" method="post">
<input type="submit" name="cho" value="previous">
</form>
</td>
<td>
<form action="image.php" method="post">
<input type="submit" name="cho" value="next">
</form>
</td>
</tr>
<BR>
<table border =1>
<tr>
<td>
<img src="<? echo($img . ".jpg"); ?>">
</td>
</tr>
</table>

全部保存在名为image.php的文件中。

我可以查看第一张图片(名为1.jpg,所有图片都是这样命名的。)然后按下一个按钮显示第二张图片。但是从那时起推动previous按钮尝试加载-1.jpgnext只需加载当前图像。

感谢。

2 个答案:

答案 0 :(得分:1)

这与变量$ img的范围有关。您目前在每个if语句中声明它。您应该在任何循环之前声明变量,以便值是持久的。

看看这里:

<?

 $img = 1;

if($_REQUEST['cho'] == 'next')
{
  $img = $img + 1;
}
else
 if($_REQUEST['cho'] == "previous")
 {
   $img = $img - 1;
 }
else
 if(!$_REQUEST['cho'] == 'next')
{
  if(!$_REQUEST['cho'] == "previous")
  {
    $img = 1;
  }
}
?>

答案 1 :(得分:0)

使用php会话,或者将其保存并在查询字符串中传递(?img = 3而不是?cho = next,并自动计算下一个和上一个链接)

<?php
$totalImages = 5;

session_start();
if (!isset($_SESSION['currentImage'])) {
  $_SESSION['currentImage'] = 1;
}

if($_REQUEST['cho'] == 'next')
{
   if($_SESSION['currentImage'] === $totalImages) {
       $_SESSION['currentImage'] = 1;
   } else {
       $_SESSION['currentImage']++;
   }

}
elseif($_REQUEST['cho'] == "previous")
{
   if($_SESSION['currentImage'] === 1) {
       $_SESSION['currentImage'] = $totalImages;
   } else {
       $_SESSION['currentImage']--;
   }
}

?>