【问题标题】:form doesn't return value (myTotal = undefined var)表单不返回值(myTotal = undefined var)
【发布时间】:2014-03-06 11:06:40
【问题描述】:

这里的新手使用一个简单的表单,要求用户输入两个整数,然后将它们相加并打印出总数。我已经检查过很多次了,似乎我的修女没有捕捉到数字,或者整数正在正确初始化?我不确定-我是新手,很困惑。任何帮助表示赞赏(是的,我已经通过 google 和 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>";}
?>

【问题讨论】:

    标签: php forms var


    【解决方案1】:

    区分大小写。就在这里:

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

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

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

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

    action="POST"
    

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

    【讨论】:

    • 谢谢!有阅读障碍的人总是很难抓住;我现在将“Num1”设置为“num1”。虽然它仍然无法正常工作,所以我还在摸不着头脑,但至少我离错误更近了。谢谢。
    • 哈哈哈不用担心。这些事情一直在发生。我会查看您的代码,看看是否还有其他问题。
    • 有另一个案例问题,Num2,现在是正确的。我的 vars 似乎没有从 url 字符串转换为打印页面。感谢您的关注!又开始抓挠我的大脑了。
    • 您能否在您的问题中发布您的修改,以便我们看看是否还有其他事情发生?
    【解决方案2】:

    PHP 数组键区分大小写,提交 HTML 表单元素时与它们在 HTML 中的大小写相同:

    if (isset($_POST['num1']))
                      ^---small n
    
               Enter the first number:<input type="text" name="Num1"><br>
                                                               ^---big N
    

    由于您检查了错误的表单元素,您的添加代码将永远不会运行。

    【讨论】:

    • 我现在已经更正了,但它仍然无法正常工作。所以我仍然在这个问题上摸不着头脑。谢谢你的帮助,一个错误更接近 D:谢谢。
    • PHP 变量也区分大小写。除了$Num2,其他地方还有$num2
    • 谢谢 - 我再次浏览了代码,查看了所有的外壳,因为我猜我的手指比我想象的要重,我想我已经更正了所有 num1 和 num2并检查了 myTotal。当我尝试运行代码时,我得到一个显示为“localhost/scc/sccc_2014/_240php/06a_troublshooting/…”的 url 字符串,但它没有打印到页面上(不知道如何解释)。
    【解决方案3】:

    你使用的是POST,你需要使用GET

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

    【讨论】:

    • 谢谢 - 我之前做过,但我现在意识到它没有用,因为我遇到了一些拼写错误/大小写问题。谢谢
    • 没问题。您可能会发现这两个语句也很有用。我一直在使用它们:echo("

      获取内容:"); echo("
      " . print_r($_GET, 1) . "
      "); echo("
      发布内容:"); echo("
      " .print_r($_POST, 1) ."
      ");
    【解决方案4】:

    您也可以将表单更改为 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>";}
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-18
      • 1970-01-01
      • 2018-08-23
      • 2016-06-03
      相关资源
      最近更新 更多