0

我正在尝试使用下一个/上一个按钮循环浏览我的照片库。当用户点击一张照片时,它会放大它。当他们单击下一步时,它应该转到下一张照片。当用户在选择照片后立即单击提交按钮时,它将放大下一张照片。但是,当他们再次单击提交(下一步)时,它不会更新 $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>
4

1 回答 1

0

您是否尝试在 if(isset($_POST['myNext'])) 之前输出 $index 是什么?

您错过了表单标签中的操作参数:

<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循环即可。如果你真的必须做你上面尝试过的事情,你应该使用“break;” 如果里面。

而不是这个:

echo 'index: '.$index;
$index++;

你可以这样做:

echo 'index: '.$index++;

编辑:

你在哪里存储拇指阵列?如果您使用数据库来存储文件的名称并为它们提供例如组 ID 号、ID 等,这一切都可以变得更容易和更有效。

于 2013-11-06T06:46:49.820 回答