2010-11-09 77 views
0
鏈接

我有以下的HTML/PHP代碼:遞增計數器當單擊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

你不能。 PHP是一個服務器端腳本。這不像在客戶機上實時執行的JavaScript。在將數據發送到客戶端之前,PHP會在服務器上執行。

0

就目前而言,$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>'; 

或者類似的東西。

+0

我該如何使用Javascript來做到這一點? – zpesk 2010-11-09 22:34:32

+0

@zPesk你會發送一個ajax請求到一個PHP腳本,它增加了存儲在數據庫中的計數器。 – JAL 2010-11-09 23:24:53

0

你將能夠做到這一點的唯一方法是如果你以某種方式存儲數據。如果我這樣做,我會使用數據庫,但因爲它只是一個計數器,所以我們將數據存儲在一個文件中。

這裏有兩個快捷功能可以使用:

1)。把東西放入文件中: file_put_contents(「counter.txt」,$ STRING_YOU_WISH_TO_STORE); 2)。從文件'counter.txt'獲取數據: $ data = file_get_contents(「counter.txt」);

您必須獲取存儲在文件中的數據,將其增加,然後在每次運行腳本時將其寫回。