PHP實現一個簡單的計算器(在html頁面和php檔案之間傳值)
阿新 • • 發佈:2019-02-03
先一個小案例簡單說明一下,從html頁面提交的資料如何傳給另一個php檔案。
先是一個簡單的html頁面:
<html> <body> <form action="test1.php" method="post"> 使用者名稱:<input type="text" name="username"> 密碼: <input type="password" name="pwd"> <input type="submit" name="submit" value="ok"> </form> </body> </html>
然後是php頁面的接收資料。
echo"<hr>";
echo '通過預定義變數獲取表單提交值<p>';
print_r($_POST);
echo "<br/>";
echo '通過預定義變數獲取表單提交指定值<p>';
echo $_POST['pwd'].=$_POST['username'];//用了 “.=”這個字串追加的賦值運算子 */
通過這個小案例可以看出,表單將值以陣列的形式傳遞過來,並且以name屬性為下標,(所以沒有name的項是獲取不到值的),並且我們可以通過下標取到對應的值。
================================================================================================================================
下面是應用這個功能。做一個簡單的計算器:
html頁面:
在另一php頁面實現計算功能:<?php if(isset($_GET["n"])) { $num1=$_GET["n1"]; $num2=$_GET["n2"]; $option=$_GET["op"]; $num=$_GET["n"]; } ?> <html> <head> <script> //加上驗證後期各位自己完善吧 function check(){ var a=document.getElementById("op1").value; if(isNaN(a)) { return false; } } </script> </head> <body> <form action="JS.php" method="get"> 第一個數:<input id="op1" name="op1" type="text" value="<?php if(isset($_GET["op"])){echo $num1;}?>"/> 運算子: <select name="option"> <option value="0">請選擇運算子:</option> <option value="+" <?php if(isset($_GET["op"])) { echo ($_GET["op"]==" "?"selected":""); } ?>>+</option> <option value="-" <?php if(isset($_GET["op"])) { echo ($_GET["op"]=="-"?"selected":""); } ?>>-</option> <option value="*" <?php if(isset($_GET["op"])) { echo ($_GET["op"]=="*"?"selected":""); } ?>>*</option> <option value="/" <?php if(isset($_GET["op"])) { echo ($_GET["op"]=="/"?"selected":""); } ?>>/</option> </select> 第二個數:<input name="op2" type="text" value="<?php if(isset($_GET["op"])){echo $num2;}?>"/> <input name="btnok" type="submit" onclick="return check()" value="GET_ok"/> <br/> 運算結果:<input type='text' <?php if(isset($_GET["op"])) { if($_GET["op"]==" ") { echo "value=".$num1."+".$num2."=".$num; } else{ echo "value=".$num1.$option.$num2."=".$num; } } ?>> </form> </body> </html>
<?php
// print_r($_GET);
// isset()檢測變數是否被設定
if(isset($_GET['btnok']))
{
$num1=$_GET['op1'];
$op=$_GET['option'];
$num2=$_GET['op2'];
switch ($op)
{
case '+' :
$num=$num1+$num2;
break;
case '-' :
$num=$num1-$num2;
break;
case '*' :
$num=$num1*$num2;
break;
case '/' :
$num=$num1/$num2;
break;
}
header("location:jisuanqi.php?n1={$num1}&n2={$num2}&op={$op}&n={$num}");
//header("location:重定向頁面地址");重定向函式。
}
else{
echo"未提交運算數";
}
?>
重定向函式模仿get傳參的方式,再將計算結果返回頁面中。
特殊說明:不知道為什麼加號“+”會被解析為空格,試了很多次,只能無奈選擇在加號的判斷那裡寫成,判斷符號是空格了/