在AJAX请求中,我们如何验证收到的POST数组?我正在使用CodeIgniter框架的form_validation库进行验证。 我能够毫无问题地验证字符串,整数和数值。但是当谈到整数数组时,它并没有帮助。
以下是我的代码:
$this->form_validation->set_rules('order_amount_paid', 'Amount Paid', 'trim|numeric');//This is ok and working
$this->form_validation->set_rules('product_categoryid_array[]', 'Product categories', 'trim|required|callback_validate_product_info');
' product_categoryid_array
'实际上是一个通过ajax请求发布的数组。我用来验证它的回调函数如下:
public function validate_product_info($array){
if(count($array) <= 0){
return FALSE;
}
elseif(count($array) > 0){
$total_count = count($array);
for($i = 0; $i < $total_count; $i++){
if(($array[$i] != '' && !is_numeric($array[$i])) OR $array[$i] <= 0){
return FALSE;
}
}
return TRUE;
}
else{
return TRUE;
}
}
在回调函数中,我认为我没有得到&#39; product_categoryid_array
&#39;作为一个数组,但事实上,作为一个字符串。
在某些情况下,我收到错误&#39; 未初始化的字符串偏移&#39;。如何成功验证后期数组。
答案 0 :(得分:0)
validate_product_info
,则 $array
将返回TRUE
$array
是一个数组$array
中的所有值都是数字(或数字字符串)否则此函数返回FALSE;
这就是我理解你的代码的方式。希望这就是你想要的。
public function validate_product_info($array)
{
if(empty($array) OR ! is_array($array))
{
return FALSE;
}
foreach($array as $key => $value)
{
if(empty($value) OR ! is_numeric($value) OR $value < 0)
{
return FALSE;
}
}
return TRUE;
}