2017-09-26 174 views
0

錯誤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

您可以通過打印'$ mdpr'檢查其數組 –

+0

請編輯您的問題在代碼中的文本沒有像 – Syfer

回答

1

「警告: 的foreach()提供無效參數」

及其因爲無論nullfalse或說法是不陣列

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 

我看到OP做編輯 - 行號:140 enter image description here

+0

IM vardump($ MDPR)與Firebug插件,和反應僅僅是NULL, –

+0

@MuhammadAldiansyah 'foreach'不能使用null,false或字符串,所以 –

+0

是我的觀點形式是錯誤的,所以foreeach不起作用? –

0

使用if(is_array()),以驗證是要循環的數組。