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

时间:2010-11-09 22:20:42

标签: php html

我有以下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 个答案:

答案 0 :(得分:0)

你做不到。 PHP是服务器端脚本。它不像在客户端机器上实时执行的JavaScript。在将数据发送到客户端之前,PHP在服务器上执行。

答案 1 :(得分:0)

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

JavaScript是一种选择吗?如果是这样,您可以通过侦听点击事件动态更改src。如果没有,则需要通过$_GET$_POST vars传递当前图像索引。

例如(使用$_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>';

或类似的东西。

答案 2 :(得分:0)

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

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

1)。要将某些内容放入文件中,请使用: file_put_contents( “counter.txt”,$ STRING_YOU_WISH_TO_STORE);

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

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