0

ペニー、クォーター、ダイム、ニッケルなど、おつりの合計金額を計算する PHP フォームを作成しています。29 行目から 32 行目で Undefined Index エラーが発生するまで、コードは正常に動作しているように見えます。誰かがこの問題について私を助けて、私が間違ったことを教えてもらえますか?

<head> 
<title>Fill in the form and I will show the greeting. </title>
<style type="text/css">
h1 {font-family:'Times New Roman'; }
</style>

<body bgcolor="orange">  
<form action="Lab6-1.php" method="post" >
<h1>Please enter your coin count and denominations.</h1>
<p>
<h1>Pennies (1 cent):
   <input type="text" size="16" maxlength="20" name="pennies" value="<?php echo $_POST['pennies']?>"/></h1>

<h1>Nickels (5 cents):
    <input type="text" size="16" maxlength="20" name="nickels" value="<?php echo $_POST['nickels']?>"/></h1> 

<h1>Dimes (10 cents):  
    <input type="text" size="16" maxlength="20" name= "dimes" value="<?php echo $_POST['dimes']?>"/></h1>
<h1> Quarters (25 cents):
    <input type="text" size="16" maxlength="20" name= "quarters" value="<?php echo $_POST['quarters']?>"/></h1>
<br /><br />
<input type="submit" value="Calculate Coins" />
<input type="reset" value ="Clear Form" />

<?php
   $pennies = $_POST['pennies']*.01;
   $nickels = $_POST['nickels']*.05;
   $dimes = $_POST['dimes']*.10;
   $quarters = $_POST['quarters']*.25;

   $total = $pennies + $nickels + $dimes + $quarters;

   $money = array ( "Quarters" => $quarters, "Dimes"=> $dimes, "Nickels" => $nickels, "Pennies" => $pennies, "Total" => $total);

   echo "<table border = \"1\" >";


 foreach ( $money as $key => $value ) {
 print("<tr><td> $key </td><td> $value</td> </tr>");  
  } 
 echo "</table>";
?>

</p>
</form>
</body>
</html>
4

2 に答える 2

1

$_POST['pennies']これは、フォームを送信する前であっても、最初は変数、$_POST['nickels']、を探していて、 $_POST['dimes']その$_POST['quarters']時点では存在しないためです。だからあなたは得る

未定義インデックス エラー

これは、フォーム送信コードを条件内にラップすることで回避できます。

お気に入り

if(isset($_POST['btnSubmit'])) }{

   // code goes here

}

送信ボタンに次の名前を付けます

<input type="submit" name="btnSubmit" value="Calculate Coins" /> 
于 2013-02-14T04:17:11.507 に答える
0

Undefined index$_POST配列項目の 1 つが存在しないことを意味します。たとえば、$_POST['quarters'].

次のように、最初に変数が存在するかどうかを確認する必要があります。

$quarters = $_POST['quarters'] ? $_POST['quarters']*.25 : 0;
于 2013-02-14T04:13:09.673 に答える