0

我有一个向我的 sql 数据库添加信息的 php 表单,我需要它只接受文本框中的数字。

这是我的 php 表单

<form id="MakeBid" action="MakeBid.php" method="POST">
    <input type="hidden" name="propertyID" value="1" />
    <div>Bid Now
        <input type="text" name="pricesoldfor" />
    </div>
    <input id="submit" input type="submit" value="Submit" />
</form>
4

4 回答 4

1
$num = 123456;
if(!filter_var($num, FILTER_VALIDATE_INT))
 {
 echo("Not number");
 }
else
 {
 echo("Number");
 }
于 2012-04-19T10:54:14.290 回答
1

您可以使用 javascript 进行客户端验证。这不是很安全,但它速度很快,可用于提供响应式用户体验,但应始终通过服务器端验证进行备份。

您可以混合使用正则表达式和 if/else 或 case/switch 来查看输入了哪些字符。

if (!preg_match("/^[0-9]", $textfield)) 
// display error message
于 2012-04-19T10:49:39.230 回答
1

客户端无需加载即可获得反馈,您可以执行以下操作

<form [...] onsubmit="if( !this.pricesoldfor.match(/\d+/) ) { 
     alert('Please enter only numbers for the price!'); return false; 
}">

(我已经在内联编写了这个示例 - 因为您的表单可能会更大,我建议您不要使用属性 onsubmit 而是附加适当的事件处理程序。看看preventDefault()以及这通常是一个更好的替代return false。)

您真正需要做的是在您的PHP(服务器端)中验证它是否只是数字,然后再将其保存到数据库中。例如像这样:

if((string)(int)$input === $input) { /*was a number*/ } else { /*was not a number*/ }

请记住,这两个都只允许完整的数字(整数),所以没有“35.43”或类似的。看看is_numeric()

于 2012-04-19T10:47:07.063 回答
0

访问所有类型的验证

http://www.position-relative.net/creation/formValidator/

演示如下

http://www.position-relative.net/creation/formValidator/demos/demoValidators.html

于 2012-04-19T10:43:14.330 回答