2010-07-30 72 views
0

基本上它是一個網頁,其中有人按下按鈕來增加$選擇變量。全局和靜態似乎不起作用。代碼如下所示:我想增加一個來自php塊外部的值

<?php 

    if(isset($_POST['next'])) 
    { 
     displaynext(); 
    } 
    else 
    { 

     global $image_folder = "/images/"; 

     echo "global declared"; 

     global $selection; 
     $selection = 1; 
    } 

    function displaynext() 
    { 
     $selection++; 

     if (file_exists($image_folder."/".$selection.".png")) { 

     echo "<img src=\"$image_folder/".$selection.".png\">"; 

    } 
    else { 

     echo "No next image was found for $selection in ".$image_folder."/".$selection.".png"; 

    } 

    ?> 


    <form action="<?=$_SERVER['PHP_SELF'];?>" method="post"> 
    <input type="submit" name="next" value="Next"> 
    </form> 

回答

3

一旦PHP運行並輸出發送到客戶端,該代碼不會,除非該頁面是從服務器再次請求運行。您可以創建一個session variable並使用它在頁面請求中存儲變量。您需要再次訪問該頁面或執行AJAX請求再次調用您的PHP代碼。

+0

跟着你的答案教程得到它做 - 謝謝! – tylercomp 2010-07-30 19:09:28

0

只需使用另一個表單元素。

<input type=hidden name=selection value=1> 

顯示圖像標記之前請在$_POST['selection']一個全面的檢查一樣is_numeric。如果設置了$_POST['selection'],則爲上面的輸入標籤遞增。

完整的示例:

<?php 
$selection = 0; 
$image_folder = "images/"; 
if (isset($_POST['selection'])) { 
    $userSelection = $_POST['selection']; 
    if (is_numeric($userSelection) && file_exists($image_folder . $userSelection)) $selection = $userSelection; 
} 

echo "<img src=\"images/" . $selection . ".png\">"; 

echo "<form action=\"" . $_SERVER['PHP_SELF'] . "\" method=post>"; 
echo "<input type=hidden name=selection value=\"" . ($selection + 1) . "\">"; 
echo "<input type=submit name=subnext value=\"Next\">"; 
0

取而代之的是使用Global,爲什麼不使用$_SESSION var?

0

地說:

global $selection 

你的函數裏面,所以:

global $selection; 
$selection++; 
相關問題