更新变量每个提交点击没有javascript

时间:2013-11-06 06:15:38

标签: php

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

1 个答案:

答案 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等,则可以使这一切变得更加容易和高效。