1. 程式人生 > >PHP實現一個簡單的計算器(在html頁面和php檔案之間傳值)

PHP實現一個簡單的計算器(在html頁面和php檔案之間傳值)

先一個小案例簡單說明一下,從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
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頁面實現計算功能:
<?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傳參的方式,再將計算結果返回頁面中。

特殊說明:不知道為什麼加號“+”會被解析為空格,試了很多次,只能無奈選擇在加號的判斷那裡寫成,判斷符號是空格了/