代码之家  ›  专栏  ›  技术社区  ›  zpesk

在PHP中单击链接时递增计数器

  •  0
  • zpesk  · 技术社区  · 14 年前

    我有以下HTML/PHP代码:

        <img id="imageViewer"src="someData" height="" width="" alt=""></img>
            <?php
                //a counter so we know what image to return
                $counter =0;
    
                print("<a href='#'>Click me</a>");
    
                $imageArray = array(0 => "image link", 1 => "image link", 2=>"image link", 3=>"image link");
    
                if ($counter<= count($imageArray))
                {
                    $pathToImage = imageArray[$counter];
                }
                else
                {
                    $counter =0;
                    $pathToImage = imageArray[$counter];
                }
    
                //code to replace old image with new image
    
            ?>
    

    我该怎么增加 $counter 单击链接,然后根据从数组中选择的内容更改图像以显示新图像?

    3 回复  |  直到 14 年前
        1
  •  0
  •   zzzzBov    14 年前

    不能。PHP是服务器端脚本。与在客户机上实时执行的javascript不同。在向客户机发送数据之前,在服务器上执行PHP。

        2
  •  0
  •   Courtney Christensen    14 年前

    事实上, $counter 0 每次加载页面时。记住所有的PHP代码都被翻译成HTML 之前 页面在浏览器中呈现。

    javascript是一个选项吗?如果是这样,您可以动态更改 src 通过监听点击事件。如果没有,则需要通过 $_GET $_POST 小精灵。

    例如(使用 $GET )

    // define array here...
    
    // Get next image
    if ( isset($_GET['index'];) )
      $imageIndex = $_GET['index'] + 1;
    else
      $imageIndex = 0;
    
    // Show image...
    echo '<img src="' . $imageArray[$imageIndex] . '" />';
    
    // Next image link...
    echo '<a href="URL?index=' . ($imageIndex + 1) . '">Next</a>';
    

    或者类似的。

        3
  •  0
  •   Ben    14 年前

    唯一能做到这一点的方法就是以某种方式存储数据。如果我这样做的话,我会使用一个数据库,但是因为它只是一个计数器,所以我们将数据存储在一个文件中。

    您可以使用以下两种快捷方式功能:

    1)。要将某些内容放入文件,请使用: 文件放置目录(“counter.txt”,$string_you_wish_to_store);

    2)。要从“counter.txt”文件中获取数据: $data=file_get_contents(“counter.txt”);

    您必须获取存储在文件中的数据,增加它,然后在每次运行脚本时将其写回。