【问题标题】:input type="number" is returning string输入类型=“数字”正在返回字符串
【发布时间】:2014-11-10 12:03:02
【问题描述】:

当我在输入字段中输入值并提交时,gettype() 显示从输入字段中获取的值的类型是字符串。但是我输入了一个整数。为什么?

<form method="post" action="ff.php">
              <input type="number" name="tableinteger" /><br />
              <input type="submit" value="submit" />
              </form>
               <?php
               if(isset($_POST['tableinteger'])){
               $num=$_POST['tableinteger'];
               $dt=gettype($num);
               echo $dt;
               if($num<2 || $num>20)
               {
                   print "Enter the number that is between 2 and 20.";
                 }
               else if($dt=="string"){
                echo "Kindly Enter an integer value.";
               }
               else {
               for($i=1; $i<11; $i++)
               {
                   echo $num*$i ."<br />";
               }
               }
             }
          ?>

【问题讨论】:

  • @sanojlawrence — 你还期待什么其他代码?
  • 转换为 int $num= (int)$_POST['tableinteger'];
  • 我希望如果用户输入一个整数,gettype() 应该将其识别为整数,如果用户输入一个字符串,它应该将其识别为字符串而不进行强制转换
  • 检查我的代码我已经上传了完整的代码供您理解
  • @zaidiqbal - 由于数据通过 HTTP 发布的方式,您得到了字符串;它不是检查实际内容。如果您想查看是否正在处理整数,请尝试php.net/manual/en/function.is-int.php

标签: php forms gettype


【解决方案1】:

因为表单数据的标准编码方法都没有区分字符串和数字。

如果您想要一个整数,请使用intval

【讨论】:

  • 现在检查我的代码我上传了完整的代码现在你可以理解我想要做什么了。
猜你喜欢
  • 2018-08-09
  • 1970-01-01
  • 2014-12-12
  • 2018-07-29
  • 1970-01-01
  • 2017-03-31
  • 1970-01-01
  • 2020-09-05
  • 1970-01-01
相关资源
最近更新 更多