错误ON 140 ,为foreach()提供的参数无效,我不知道我该怎么做
MyController代码:
if ($data['ms']['mspr_no'] != '') {
$mdpr = $this->input->post('mdpr');
foreach ($mdpr as $key => $value1) {
foreach ($mdpr[$key] as $idx => $value2) {
if ($mdpr['mdpr_mspd_no'][$idx] != '') {
$data['md'][$idx]['mdpr_no'] = $data['ms']['mspr_no'];
if ($key == 'mdpr_net') {
$data['md'][$idx][$key] = ftodouble($value2);
} else {
$data['md'][$idx][$key] = $value2;
}
}
}
}
}
我的表格促销视图:
<?php
if ($action == 'view') {
if (isset($promo)) {
foreach ($promo as $value) { ?>
<tr>
<td><input type="text" name="mdpr[mdpr_mspd_no][]" class="form-control srstyle-ta-center mdpr_mspd_no" value="<?php echo $value['mdpr_mspd_no']; ?>" readonly /></td>
<td><input type="text" class="form-control msph_pl" value="<?php echo $value['msph_pl']; ?>" readonly/></td>
<td><input type="text" class="form-control msph_hjkk_net" value="<?php echo $value['msph_hjkk_net']; ?>" readonly/></td>
<td><input type="text" class="form-control msph_hjkj_net" value="<?php echo $value['msph_hjkj_net']; ?>" readonly/></td>
<td><input type="text" name="mdpr[mdpr_net][]" class="form-control mdpr_net srstyle-ta-right auto-numeric" value="<?php echo $value['mdpr_net']; ?>" readonly/></td>
</tr><?php
}
}
}
?>
谢谢
答案 0 :(得分:1)
“警告:提供的参数无效 foreach()“
由于null
或false
或参数不是数组
foreach($mdpr as $key => $value1){
^
see var_dump($mdpr),
$mdpr is either null or false or not array you get above error
所以你可以做的是
$mdpr = $this->input->post('mdpr');
if(is_array($mdpr))
{
foreach($mdpr as $key => $value1)
{
// your remaining code goes here
}
}else
{
echo 'Bad data posted';
}
我们可以像这样重新生成此错误,例如
$ php -r 'foreach(null as $e){}'
PHP Warning: Invalid argument supplied for foreach() in Command line code on line 1
/*false OR FALSE*/
$ php -r 'foreach(false as $e){}'
PHP Warning: Invalid argument supplied for foreach() in Command line code on line 1
/* Not array */
$ php -r 'foreach("somestring" as $e){}'
PHP Warning: Invalid argument supplied for foreach() in Command line code on line 1
答案 1 :(得分:0)
使用if(is_array())
验证这是一个要循环的数组。