0

我只在用户输入整数值(no字符串、浮点数等)时才尝试打印表格,但是这段代码不起作用让我现在缺少什么来获取整数值而不JAVASCRIPT在前端使用。如果我错过了一些逻辑,请告诉我。

这是我的 php 代码 ( index.php ) --

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>table Data</title>
</head>

<body>

<table width="29%" border="1">
<form name="mytableform" id="mytableform" action="mytabledata.php" method="POST">
  <tr>
    <td width="42%">Enter any munber :&nbsp;</td>
    <td width="58%"><input type="text" name="mynumber" id="mynumber" />&nbsp;</td>
  </tr>
  <tr>
    <td>Enter limit :&nbsp;</td>
    <td><input name="limit" type="text" id="limit" />&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2"><input type="submit" value="Submit" name="submit" />&nbsp;</td>
    </tr>
 </form> 
</table>

</body>
</html>

我的mytabledata.php内容文件——

<?php

$number = $_POST['mynumber'];
$limit = $_POST['limit'];

//var_dump($number);
//var_dump($limit);

if( is_int($number) )
{
    for($i=1;$i<=$limit;$i++)
    {
    $p= $number * $i;
    echo $number." X ".$i." = "." ".$p.";";
    echo "<br />";
    }
}
else{
echo "Please check the type of data you are entering.";
}
4

7 回答 7

3

来自 HTTP ( , 等) 的输入$_POST$_GET始终string输入 php 域。如果您想验证该字符串是否可以解释为您可以使用is_numeric的数字或过滤器库。

于 2012-08-16T09:08:43.180 回答
2

您的值POST是字符串类型。要使用它,您可以这样做:

$number = intval( $_POST['mynumber'] );
于 2012-08-16T09:08:07.860 回答
1

问题是$_POST值总是作为 ASCII 文本提交(即它们是字符串)。使用该intval函数将字符串转换为整数。

于 2012-08-16T09:07:59.353 回答
1

的值$_POST始终是字符串,不会自动转换为数字。

您想在脚本中使用的可能不是is_int(),它检查变量类型,而是is_numeric()检查变量是否包含数值(无论是 int 还是 string)。

于 2012-08-16T09:10:32.563 回答
1

当我必须检查整数类型时,我通常使用下面提到的条件

if(is_numeric($val) && intval($val)==$val) {
/*Place your code here*/
}
于 2012-08-16T09:30:46.307 回答
0

我会使用is_numeric而不是is_int. 上面提到的答案也很好,但是 is_numeric 更好,因为它会立即返回 true 或 false。

 if( is_numeric($number) )
于 2012-08-16T09:17:52.837 回答
0

试试这个,

if(((int) $number) == $number)
{
    echo "is integer";
}

编辑:或者你可以像这样使用正则表达式

if(preg_match("/^\d+$/", $number))
{
    echo "is integer";
}
于 2012-08-16T09:20:13.373 回答