检查所有$ _POST变量并根据类进行验证

时间:2014-03-12 21:39:25

标签: php jquery validation

对于我的Jquery,我使用类来定义该对象上使用的验证类型。例如:

<input class="NUMBER_VALIDATE" type="text" maxlength="80" name="PRICE" id="PRICE" value="PRICE">

Jquery检查所有NUMBER_VALIDATE以确保它们是数字,然后显示错误。我也想使用PHP来做这个服务器端。

因此,这就是我需要的:PHP将循环遍历$ _POST变量,然后检查创建$ _POST的每个元素(如果其中有NUMBER_VALIDATE)。如果是,并且它不是数字,则不会将其添加到数据库中。

我的名字&amp; ID是相同的。

因此我需要这样的事情:

foreach($_POST)
{
GET THE NAME USED FOR THE POST VAR, (for example PRICE)
USE PRICE TO LOCATE THE ELEMENT, AND GET THE CLASS
IF THE CLASS IS NUMBER_VALIDATE, VALIDATE THE $_POST FOR NUMBERS
}

2 个答案:

答案 0 :(得分:1)

$_POST不传递课程。要使用类,您必须使用Javascript验证:

$("form").submit(function(e){

    for(var i = 0; i < $(this).find(".NUMBER_VALIDATE").length; i++)
    {
        if(isNaN($($(this).find(".NUMBER_VALIDATE")[i]).val())
        {
            //test failed
            e.preventDefault();
            return false;
        }
    }

});

请注意,人们可以禁用Javascript,因此在这种情况下此代码不会运行。我建议你找到一种不同的方法来验证PHP。

表单传递给PHP的唯一内容是名称和值。这可能是您应该对验证进行硬编码的少数几次之一,而不是依赖于动态变量来执行此操作。

答案 1 :(得分:-1)

只需在名称的开头添加一个字符串,然后在处理时删除该字符串

<input class="NUMBER_VALIDATE" name="NUMBER-VALIDATE-PRICE" id="PRICE" value="100.00">

foreach($_POST as $key => $value) {
    if(stripos($key, "NUMBER-VALIDATE-") > -1) {
        // do something
    }
}