如果语句里面的循环不起作用

时间:2015-08-17 12:04:29

标签: php post for-loop

for ($i=1; $i<=27 ; $i++) { 
        echo 'listid='.$i.'';
        echo 'statusid='.$_POST[$i].'';

            if (isset($_POST[$i])) {
            $listid = $i;
            $statusid = $_POST[$i];
            // $funcs->insertAudit($listid,$statusid);
        }
    }

你能把变量放在$_POST里吗?因为这似乎是我的问题。它显示以下错误:

  

listid = 1
      注意:未定义的偏移量:在第567行的C:\ xampp \ htdocs \ stafflease \ index.php中为1       statusid =

2 个答案:

答案 0 :(得分:2)

您没有安全地对$_POST进行迭代。<错误说“未定义偏移量1”表示$_POST[1]不存在

你应该使用foreach安全地迭代,这可以保证你有密钥(偏移量)

foreach($_POST as $key=>$value){
    $listid = $key;
    $statusid = $value;
}

如果您仍想使用范围1到27 你应该问isset 之前去那个单元格。

for($i = 1; $i < 27; $i){
    if(!isset($_POST[$i])) continue;
    //here it is safe to use $_POST[$i]
}

答案 1 :(得分:0)

它不适合在一个循环中借助整数索引从$ _POST数组中获取值。你可以使用foreach循环。

foreach($_POST as $key=>$value){
    $listid = $key;
    $statusid = $value;
}
这里的 $ key将是你的html表单字段的名称。 还可以更好地查看$ _POST数组中的内容,为此目的,您可以进行测试。

echo '<pre>';
var_dump($_POST);
die;
相关问题