【问题标题】:undefined index invalid argument for loop error循环错误的未定义索引无效参数
【发布时间】:2015-04-17 17:56:32
【问题描述】:

请在这里指出正确的方向我正在尝试执行以下操作:

  1. 为每个 eventid 生成多个选择框
  2. 用户选择他们认为会赢得每场比赛的人
  3. 每个 selectBox 的名称是分配给变量 $id 的事件 id
  4. 在 while 循环结束时,我想在 For 循环中提取数组 $id 值,但是在我的 for 循环中出现错误“未定义的偏移量和无效参数”...

这是我的表格

    $i=0;//counter
    while($row=mysql_fetch_array($result)){

    $team1 = $row['team1'];
    $team2 = $row['team2'];
    $id[$i]= $row['event_id']; 

    echo'<h3>'.$team1.' VS '.$team2.'</h3>';
    echo'<select name="'.$id[$i].'">';
            echo'<option value="'.$row['team1'].'">'.$team1.'</option>';
            echo'<option value="'.$row['team2'].'">'.$team2.'</option>';
            echo'</select>';    
        $i++;
    }//while

这是我的 for 循环给出错误,我怀疑问题出在 $_POST['$id']...

if(isset($_POST['submit'])){    

    foreach($_POST[$id] as $eventId => $winner){
     echo'<h3>'.$eventId.'</h3>';
}//for loop
}//end isset

任何帮助将不胜感激

【问题讨论】:

  • id $id 定义在哪里以及如何初始化?
  • @Lashane 这就是你要问的 $id[$i]= $row['event_id'];哪里 $row['event_id'];从数据库中检索
  • 确切的错误信息是什么以及它与哪一行相关?
  • 我认为您需要在代码中将 $id 更改为仅 id 。当您实际尝试使用常量时,您正在使用变量。

标签: php


【解决方案1】:

$id 这里定义为数组$id[$i]= $row['event_id'];。数组不能用作 foreach 数组或其他数组中的键。 这就是导致您在此行出现错误的原因

foreach($_POST[$id] as $eventId => $winner){ //$id is an array of values
    echo'<h3>'.$eventId.'</h3>';
}//for loop

您必须为 $id 创建第二个 foreach 语句,然后使用当前 foreach 语句中的 id 值。

foreach( $id as $key => $val ) {
foreach( $_POST[$val] as $eventId => $winner){

【讨论】:

  • 非常感谢您的帮助,我对其进行了一些调整,但它就像炸弹一样工作
【解决方案2】:

您不知道操作页面上的 event_id 值是什么,所以我认为您必须再次查询这些值,例如:

if(isset($_POST['submit'])){
    /* do your query here */
    $data = array();
    while($row=mysql_fetch_array($result)){
     $data[] = $_POST[$row['event_id']];
    }

    foreach($data as $key => $value){
        print_r($_POST[$value]);
        echo "<br>";
    }
}

【讨论】:

    猜你喜欢
    • 2014-05-15
    • 2012-05-07
    • 1970-01-01
    • 2016-06-14
    • 2022-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多