2012-09-20 70 views
-4

我的目標計劃:在處理完動作後在php中增加變量?

  1. 在我的index.php文件,顯示圖像。
  2. 我想,當我用戶點擊該圖像時,應該顯示一個新的圖像。
  3. 當他點擊新圖像時,應該會出現另一個新圖像。

我到現在爲止做了什麼?

<?php 
$mycolor = array("red.jpg", "green.jpg", "blue.jpg"); 
$i = 0; 
$cc = $mycolor[$i++]; 
?> 


<form method="post" action="index2.php"> 
<input type="image" src="<?php echo $cc; ?>"> 
</form> 

我知道是什麼錯誤。無論何時,頁面被重新加載,變量$ i被初始化爲零。如何解決這個問題。如何在點擊圖像後保留增加的值?

另外,我有沒有使用Javascript知識。所以,如果可能的話解釋我的php。

+0

你需要學習Javascript,因爲你需要,可以用js來完成。 –

+0

我認爲你需要學習JavaScript :-) – Miroslav

回答

0

您可以使用會議,餅乾或POST變量來跟蹤指數的,但有些你如何需要記住的最後一個索引,以便您可以+1按鈕。以下是使用另一個(隱藏)帖子變量的示例:

<?php 

    // list of possible colors 
    $mycolor = array('red.jpg', 'green.jpg', 'blue.jpg'); 

    // if a previous index was supplied then use it and +1, otherwise 
    // start at 0. 
    $i = isset($_POST['i']) ? (int)$_POST['i'] + 1 : 0; 

    // reference the $mycolor using the index 
    // I used `% count($mycolor)` to avoid going beyond the array's 
    // capacity. 
    $cc = $mycolor[$i % count($mycolor)]; 
?> 

<form method="POST" action="<?=$_SERVER['PHP_SELF'];?>"> 

    <!-- Pass the current index back to the server on submit --> 
    <input type="hidden" name="id" value="<?=$i;?>" /> 

    <!-- display current image --> 
    <input type="button" src="<?=$cc;?>" /> 
</form> 
+0

我試過這種方法。但它沒有奏效。可能,我們沒有使用任何地方的身份證。 –

1
<?php 
$mycolor = array("red.jpg", "green.jpg", "blue.jpg"); 

if (isset($_POST['i'])) { // Check if the form has been posted 
    $i = (int)$_POST['i'] + 1; // if so add 1 to it - also (see (int)) protect against code injection 
} else { 
    $i = 0; // Otherwise set it to 0 
} 
$cc = $mycolor[$i]; // Self explanatory 
?> 


<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
<input type="image" src="<?php echo $cc; ?>"> 
<input type="hidden" name="i" value="<?php echo $i; ?>"> <!-- Here is where you set i for the post --> 
</form> 
+0

非常感謝。 –