2015-07-06 71 views
-1

我想創建一個函數,在每次單擊按鈕時將數字累加到給定變量。如何通過函數添加數值 - PHP

我有4個按鈕:農場,洞穴,房子,賭場 enter image description here

所以我想實現在這裏我需要通過按鍵產生的隨機數發送到加起來所有的變量在「你的黃金」部分的分數。假設我點擊農場和洞穴按鈕,洞穴就會有20個,而農場則有15個,總共有35個金幣。

這裏是我的form.php的

<div class="wrapper"> 

    <div id="gold"> 
     <form action="process-game.php" method="post" > 
      YOUR GOLD: <input type="hidden" name="building" value="gold"/> 
     </form> 
    </div> 


<div class="farm_form"> 
    <h2>Farm</h2> 
    <form action="process-game.php" method="post" > 
     <input type="hidden" name="building" value="farm"/> 
     <input type="submit" value="Find Gold!"/> 
    </form> 
</div> 


<div class="farm_form"> 
    <h2>Cave</h2> 
    <form action="process-game.php" method="post"> 
     <input type="hidden" name="building" value="cave"/> 
     <input type="submit" value="Find Gold!"/> 
    </form> 
</div> 


<div class="farm_form"> 
    <h2>House</h2> 
    <form action="process-game.php" method="post"> 
     <input type="hidden" name="building" value="house"/> 
     <input type="submit" value="Find Gold!"/> 
    </form> 
</div> 


<div class="farm_form"> 
    <h2>Casino</h2> 
    <form action="process-game.php" method="post"> 
     <input type="hidden" name="building" value="casino"/> 
     <input type="submit" value="Find Gold!"/> 
    </form> 
</div> 

</div> 

這裏是我的process.php:

<?php 
    session_start(); 

    if(isset($_POST['building'])){ 
     echo earn_gold(); 
    } 

    function earn_gold(){ 
     if($_POST['building'] == "farm"){ 
      $gold = rand(10,20); 
     }else if($_POST['building'] == "cave"){ 
      $gold = rand(5,10); 
     }else if($_POST['building'] == "house"){ 
      $gold = rand(2,5); 
     }else if($_POST['building'] == "casino"){ 
      $gold = rand(0,50); 
     } 
     return $gold; 
    } 


?> 

任何想法如何做到這一點?

+0

無論是將太多可能的答案,還是很好的答案就太長了這種格式。請添加詳細信息以縮小答案集或隔離可在幾個段落中回答的問題。我建議您找到一個開發論壇(可能是[quora](http://www.quora.com/Computer-Programming) )?)來計算一般性。然後,當/如果您有特定的編碼問題,請回到StackOverflow,我們很樂意提供幫助。 –

+0

基本上我需要回聲earn_gold();將所有生成的數字相加。 –

+0

你*可以*使用PHP一定能夠實現你想要的。爲此,您需要爲此頁面設置一個「會話」(**和**將得分值存儲到'$ _SESSION'數組中!!),所以值會再次添加到同一個計數器。 **但是**:我強烈建議直接在瀏覽器上使用JavaScript進行這種類型的用戶交互,可能與jQuery有關。編程將會更容易,用戶體驗最終會更好... – cars10m

回答

0

如果你真的需要它,我想你可以在會話中做到這一點。

if (isset($_POST['building'])) { 
    // getting random gold 
    $earn_gold = earn_gold(); 
    // adding to session called "gold" 
    $_SESSION['gold'] = (isset($_SESSION['gold']) ? $_SESSION['gold'] + $earn_gold : $earn_gold); 
    // redirect back to process page 
    header('Location: process.php'); 
    exit; 
} 

然後輸出它像這樣

<div id="gold"> 
    <form method="post" > 
     YOUR GOLD: <input type="hidden" name="building" value="gold"/> 
     <?php 
      // if set, outputting sessions "gold" value 
      if (isset($_SESSION['gold'])) echo $_SESSION['gold']; 
     ?> 
    </form> 
</div> 
+0

嘗試了您的代碼,但沒有奏效。 –

+0

你是否在「form.php」的開頭使用session_start()開始會話? – JungleZombie

+0

它的工作原理,我如何將它重定向到表單頁面,以顯示處理後的結果? –

0

當用戶點擊查找黃金,然後提交一個表格,將黃金添加到總結果。例如,如果用戶獲得3金,然後添加黃金變量。

$totalGold = 0; 

when user.click button then $totalgold +3; 
0

有一個表單元素,並使用JavaScript的onclick事件分配給每個butons的,並且可以使用Ajax動態提交表單並顯示結果回到同一頁上。

1

我知道,你基本上要在PHP的解決方案。儘管如此,我還是忍不住向你展示,在JavaScript/jQuery中做同樣的事情是多麼容易。看看它或簡單地忽略它。它是由你... ;-)

// define gold amounts for each button (min,max): 
 
var finds={farm:[10,20],cave:[5,10],house:[2,5],casino:[0,50]}; 
 

 
$(function(){ 
 
$(':submit').click(function(){ // for all submit buttons: bind the click event to a function ... 
 
    var place=$(this).closest('div[id]').attr('id'); // get the id of the buttin's parent div 
 
    var fnd=finds[place]; // get the min/max array for the current button 
 
    with ($('#gold span')) // locate and use the <span> inside the div with id=gold 
 
    text(parseFloat(text()) // get the current value of the span (convert to float) 
 
      +fnd[0]+Math.ceil(Math.random()*(fnd[1]-fnd[0]))); // add the gold ... 
 
}); 
 
})
div {display:inline-block; width: 120px; border:1px solid grey}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<div class="farm_form" id="gold"> 
 
    <h2>Your Gold</h2><span>0</span> 
 
</div><br> 
 
<div class="farm_form" id="farm"> 
 
    <h2>Farm</h2><input type="submit" value="Find Gold!"/> 
 
</div> 
 
<div class="farm_form" id="cave"> 
 
    <h2>Cave</h2><input type="submit" value="Find Gold!"/> 
 
</div> 
 
<div class="farm_form" id="house"> 
 
    <h2>House</h2><input type="submit" value="Find Gold!"/> 
 
</div> 
 
<div class="farm_form" id="casino"> 
 
    <h2>Casino</h2><input type="submit" value="Find Gold!"/> 
 
</div>