[英]Calculating values in PHP with buttons
我正在用PHP創建一個計算器,我應該具有HTML的這種結構,其中我的數字是可單擊的按鈕,並且第一次單擊的數字將是第一個值,而我單擊的第二個數字將是第二個值。 我不知道它會如何工作,可能嗎? 如果是這樣,這是我的代碼
<html>
<head>
<title>Calculator</title>
</head>
<body>
<div id = "structure">
<?php
if(isset($_GET)){
$value += $_GET;
}
?>
<form method = "GET " action = "calculator.php">
<input type = "submit" name = "one" value = 1>
<input type = "submit" name = "two" value = 2>
<input type = "submit" name = "three" value = 3>
<input type = "submit" name = "operand" value = "+">
</br>
<input type = "submit" name = "four" value = 4>
<input type = "submit" name = "five" value = 5>
<input type = "submit" name = "six" value = 6>
<input type = "submit" name = "operand" value = "-">
</br>
</form>
</div>
</body>
</html>
我沒有將所有數字都放在計算器中用於發布目的
正如其他人提到的那樣,最好的方法是使用客戶端編碼(Javascript)。 但是,如果必須編寫PHP代碼,則需要提交兩次表單。 第一次,將輸入變量(第一個數字)放在表單的隱藏輸入元素中,並再次使用額外的隱藏輸入元素再次打印html。 第二次,查找該隱藏的輸入值:如果存在,則表示新輸入是第二個數字,隱藏輸入是第一個數字。 獲取隱藏輸入的值,獲取新數字,將它們加在一起並顯示結果。 確保重置隱藏的輸入值。
由於這是一本書的練習,並且重點是您編寫代碼,因此我不會為您提供任何代碼。 但是,我可以為您指明正確的方向(或至少其中之一)。
考慮使用可以隨每個請求發送的某種值,該值存儲所有操作的當前累積值。 這可能應該顯示在某個地方,也應該放置在PHP可以在表單提交時讀取的字段中(提示:您是否聽說過隱藏的輸入類型?)。 您將如何跟蹤上一次操作? 也許您可以使用這些字段中的另一個來存儲操作,直到按下另一個按鈕為止。
您可以使用什么代碼檢查表單是否已提交? 如何檢查按下了哪個按鈕。 如果按+
將設置哪些值? 如果按號碼怎么辦? 如果連續輸入多個數字怎么辦?
還有更多需要考慮的事情:嘗試使用真正的計算器。 什么時候顯示結果? 使用什么操作順序? 每個操作都有左手側和右手側。 連續按下多個數字會發生什么。 小數呢? 是否應該有一個清除按鈕?
您將需要一種跟蹤先前輸入的方法。 每次您單擊按鈕時,帶有該信息(在$_GET
)的請求都會發送到服務器,但是舊輸入不再可用。 幾種方法:
隱藏的表單元素
每次用戶單擊時,您都會讀取該值並將其以隱藏的表單元素輸出回頁面中。 每次您必須使用$_GET
現有方法讀取隱藏元素的值時,找出需要做的數學運算,然后將舊內容和新內容再次保存到隱藏元素中以供下一次輸入。
有關示例,請參見此頁面 。
餅干
您可以使用setcookie
設置具有用戶輸入值的cookie。 每次用戶單擊按鈕時,您都希望從cookie中加載值並附加當前輸入。 當用戶單擊=
按鈕時,您將加載cookie數據並解析該表達式。 您可以更輕松地將表達式的各個部分存儲在cookie中某種分隔字符串中,這樣就可以得到operand,operator,operand
,然后可以輕松地計算結果。 點擊清除按鈕將清除cookie的值。
這個tizag教程是您要使用Cookie的一個很好的例子。
Java腳本
顯然是最簡單的方法。 由於將保持狀態,因此您不需要來回傳遞值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.