我正在尝试使用下一个/上一个按钮循环浏览我的照片库。当用户点击照片时,它会放大它。当他们点击下一步时,它应该转到下一张照片。当用户在选择照片后立即点击提交按钮时,它将放大下一张照片。但是,当他们再次单击提交(下一步)时,它不会更新$ index变量。我知道原因是因为一旦它设置isset($_POST['myNext')
第一次评估为假。那么每次点击按钮时如何更新$ index。我不想为此使用javascript,因为它应该可以使用PHP。我也不想只是复制和粘贴一些我不明白的JS。我在网上寻找答案但没有JS就找不到任何东西。我省略了使用图像扫描目录的代码。谢谢。
<?php
for($i = 0; $i < count($thumbArray); $i++)
{
$currentIndex = $thumbArray[$i];
echo '<div class = "img"> <a href ="?original_selection='.$currentIndex.'"> <img src="'.$dir.$thumbArray[$i].'" alt="Picture" height = "100" width = "100" /> </a> </div>';
}
if(isset($_GET['original_selection']))
{
$original_selection = $_GET['original_selection'];
}
for($i = 0; $i < count($thumbArray); $i++)
{
if($thumbArray[$i] == $original_selection)
$index = $i;
}
?>
<html>
<head><title>Single</title></head>
<body>
<?php
if(isset($_POST['myNext']))
{
echo 'index: '.$index;
$index++;
}
?>
<div class = "img"> <img src="<?= $dir.$thumbArray[$index] ?>" alt = "Picture" height = "500" width = "500" /></div>
<form name="NextForm" method="post">
<br />
<input type="submit" name="myNext" value="Next"/>
</form>
<h1>hi</h1>
</body>
</html>
答案 0 :(得分:0)
您是否尝试在if(isset($ _ POST ['myNext']))之前输出$ index?
您错过了表单标记中的action参数:
<form name="NextForm" method="post" action="">
^这样做会将表单数据发送到同一页面。
这似乎是非常低效的代码,我被允许是残酷的诚实。
for($i = 0; $i < count($thumbArray); $i++)
{
if($thumbArray[$i] == $original_selection)
$index = $i;
}
你为什么这样搜索?它不仅会在找到它的值后继续搜索,而且还有一个php函数,即array_search。你也不需要在php中循环,只需使用foreach循环。如果你真的必须做你上面尝试的事情,你应该使用“休息”;在if。里面。
而不是:
echo 'index: '.$index;
$index++;
你可以这样做:
echo 'index: '.$index++;
编辑:
你在哪里储存拇指阵列?如果您使用数据库存储文件的名称并为其提供例如组ID号,ID等,则可以使这一切变得更加容易和高效。