2017-09-26 86 views
-1
  1. 我宣佈一個名爲$棧
  2. 數組我做一個if語句來檢查,如果在我的HTML身體的按鈕激活。
  3. 一旦被解僱,我嘗試在我的$堆疊陣列推向一個隨機值(通過mt_rand)。
  4. 我打印我的數組,看看裏面有什麼值。

其中y我試圖增加的倍for循環將運行量,從而應該有更多的值可變推入陣列。但是,這並沒有發生。他爲什麼不發生?我有這樣的感覺,當我按下按鈕時,頁面被刷新,我的$ y變量再次爲0。它是否正確?推隨機變量到數組PHP

我希望你能幫助我。

<html> 
<head> 
<?php 

    $stack = array(); 
    if(isset($_POST['dobbelTrig'])){ 
     $y=0; 
     $y++; 

      for($x = 0; $x < $y; $x++){ 
       $newvalue = mt_rand(1,6); 
       $stack[] = $newvalue; 
      } 

     print_r($stack); 
    } 
?> 
</head> 
<body> 

<p> 
    <form method="post" action=""> 
     <input type="submit" value="dobbelen" name="dobbelTrig"> 
    </form> 
</p> 

</body> 
</html> 
+1

爲什麼你不能設置'$ y = 1';而不是'$ y = 0; $ Y ++;'?如果$ y的值爲1,那麼顯然只有一個值會被添加到數組中 – Manav

+0

由於您已將'$ y'設置爲'1'並且您從'0'循環,因此您的循環只能執行一次,到'$ y'。 – meagar

+0

您的HTML無效。甲''

不能包含''

這樣的形式開始標記隱式地關閉使''

結束標記而沒有匹配的開始標記的段落。使用[驗證器](https://validator.nu)。 – Quentin

回答

1

看吧:

$y=0; // Y is 0 
$y++; // Y is now 1 
for($x = 0; $x < $y; $x++){ //So X is zero, when $x++ it is no longer < $y 
2

首先你設置$y1

$y=0; 
$y++; 

然後你循環0$y之間:

for($x = 0; $x < $y; $x++){ 

所以0小於1,所以你的值添加到陣列。

然後1不小於1,所以你停下來。

在這一點上,你有數組中的一個值。


當你再次點擊提交,程序從開始運行。它創建一個新的數組並在其中放入一個值。

如果你想堅持的表單提交之間的數據,那麼你需要存儲的結果某處持久(如會話,數據庫或嵌入的形式隱藏輸入元素)。

+0

這正是原因爲什麼它沒有工作。我一直在努力解決這個問題,第二部分的答案也解決了我的第二個問題。我將查找如何在沒有數據庫的情況下保留數據(這裏是初學者)。感謝您的精彩輸入! –