我正试着制作一个基本的图库,放在网页上。到目前为止,这是我的代码:
<?
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,所有图像都是这样命名的)。然后按下next按钮显示第二个按钮。但从那时起,按previous按钮,尝试加载-1.jpg,next只加载当前映像。
谢谢。
发布于 2014-04-20 22:26:05
使用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']--;
}
}
?>发布于 2014-04-20 22:17:07
这与变量$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;
}
}
?>https://stackoverflow.com/questions/23188122
复制相似问题