我有一个php表单,它正在向我的sql数据库添加信息,我需要它只接受文本框中的数字。
这是我的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>
答案 0 :(得分: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()
答案 1 :(得分:1)
您可以使用javascript进行客户端验证。这不是非常安全,但速度快,可用于提供响应式用户体验,但应始终使用服务器端验证进行备份。
您可以混合使用正则表达式和if / else或case / switch来查看输入的字符。
if (!preg_match("/^[0-9]", $textfield))
// display error message
答案 2 :(得分:1)
$num = 123456;
if(!filter_var($num, FILTER_VALIDATE_INT))
{
echo("Not number");
}
else
{
echo("Number");
}
答案 3 :(得分:0)