使用php以html格式进行数字验证

时间:2013-03-17 20:38:30

标签: php validation html-form-post

我创建了一个表单,其中提交的金额就像

<label for="amt"<?php validateField( "amt", $Fieldsmissing ) ?>>Amt *</label> <input type="number" name="amt" id="amt" min="1" value="<?php setValue( "amt" ) ?>" />

并且在表单的顶部,条件就像

function setValue( $fieldName ) { if ( isset( $_POST[$fieldName] ) && $_POST[$fieldName] > 0 ) { echo $_POST[$fieldName]; } }

提交后,如果我输入0则显示错误,但是如果我输入00或任何“ - ”符号或任何字母而不是0,则它不会验证。

据我所知,数字类型在Mozila,IE中有一个错误,但它在Chrome中运行正常,因为Chrome不接受任何输入1.我想要的是,我想设置从0.1到0.1的输入值最大正数(即99999)。除此之外,如果它输入任何其他东西,它将显示错误。任何人都可以告诉我哪种情况最适合我的表格。 谢谢。

此处提供了完整的源代码供您理解,如果您查看here

,将不胜感激。

1 个答案:

答案 0 :(得分:0)

查看以下功能:

  • intval:使用指定的转换基数(默认值为10)返回var的整数值。不应在对象上使用intval(),因为这样做会发出E_NOTICE级别错误并返回1.
  • filter_var:使用指定的过滤器过滤变量。 (FILTER_VALIDATE_INT在您的情况下。
  • settype设置变量的类型。 (整数)

所以,试试这个:

function setValue($fieldName)
{
   if (isset($_POST[$fieldName]))
   {
      $field = intval($_POST[$fieldname]);
   }

   // other magic
}