表单不返回值(myTotal = undefined var)

时间:2014-02-09 03:18:27

标签: php forms var

新手在这里使用一个简单的表单,要求用户输入两个整数然后将它们一起添加并打印出总数。我已多次看过它了,似乎我的修女们没有抓住这些数字,或者这些整数正在初始化?我不确定 - 我是个新手并且很困惑。任何帮助是值得赞赏的(是的,我通过谷歌和php.net搜索了一个答案,但我不知道我的阅读水平是否足以让我把它整理出来)。

代码:

<?

//adder.php

if (isset($_POST['num1']))
{
    $num1 = $_POST['num1'];
    $num2 = $_POST['num2'];

    $myTotal = $num1 + $Num2;

    echo "<h2 align=center>You added <font color=blue>" . $num1 . "</font> and ";
    echo "<font color=blue>" . $num2 . "</font> and the answer is <font color=red>" . $myTotal . "</font>!";

    unset($_POST['num1']);
    unset($_POST['num2']);
}else{
?>

   <html>
       <body>
           <h1 align="center">Adder </h1>
           <form action="<? print $_SERVER['PHP_SELF']; ?>">
           Enter the first number:<input type="text" name="Num1"><br>
           Enter the second number:<input type="text" name="num2"><br>
           <input type="submit" value="Add Em!!">
           </form>
       </body>
   </html>

<?php
echo "<br /><a href=" . $_SERVER['PHP_SELF'] . ">Reset page</a>";}
?>

4 个答案:

答案 0 :(得分:1)

区分大小写。就在这里:

<input type="text" name="Num1">

但是在你的PHP脚本中你正在寻找“num1”。请记住,关联数组中的键区分大小写。

$thing['foo'];//and
$thing['Foo'];//are two separate values.

此外,您的表单设置为默认方法,即GET。尝试添加

action="POST"

作为它的属性。 作为一个附带建议,如果您使用双引号来分隔字符串,则不需要对变量进行字符串连接。双引号告诉解析器一个变量可以在字符串中并解析它。

答案 1 :(得分:1)

PHP数组键区分大小写,HTML表单元素与HTML中的相同案例一起提交:

if (isset($_POST['num1']))
                  ^---small n

           Enter the first number:<input type="text" name="Num1"><br>
                                                           ^---big N

因为您正在检查错误的表单元素,所以您的添加代码将永远不会运行。

答案 2 :(得分:1)

您正在使用POST,您需要使用GET

if (isset($_GET['num1']))
{
    $num1 = $_GET['num1'];
    $num2 = $_GET['num2'];
    ...

答案 3 :(得分:0)

您也可以将表单更改为post方法,默认情况下表单将使用get。

您可以在此处查看优缺点http://www.w3schools.com/tags/att_form_method.asp

我纠正了提到的其他区分大小写的错误。 我也在学习PHP,但我把它放在一起以防万一

<?

//adder.php

if (isset($_POST['num1']))
{
    $num1 = $_POST['num1'];
    $num2 = $_POST['num2'];

    $myTotal = $num1 + $num2;

    echo "<h2 align=center>You added <font color=blue>" . $num1 . "</font> and ";
    echo "<font color=blue>" . $num2 . "</font> and the answer is <font color=red>" . $myTotal . "</font>!";

    unset($_POST['num1']);
    unset($_POST['num2']);
}else{
?>

   <html>
       <body>
           <h1 align="center">Adder </h1>
           <form action="<? print $_SERVER['PHP_SELF']; ?>" method="post">
           Enter the first number:<input type="text" name="num1"><br>
           Enter the second number:<input type="text" name="num2"><br>
           <input type="submit" value="Add Em!!">
           </form>
       </body>
   </html>

<?php
echo "<br /><a href=" . $_SERVER['PHP_SELF'] . ">Reset page</a>";}
?>