我有以下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
,然后根据从数组中选择的内容更改图像以显示新图像?
答案 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”);
您必须将数据存储在文件中,递增,然后在每次运行脚本时将其写回。