不能使用类型为stdClass的对象作为带选择框的数组

时间:2015-05-13 02:49:59

标签: php

我可以使用下面的代码,它可以正常工作,并按预期填充选择框。

<select id="eventtype">
  <?php
    foreach($data['EventType'] as $data)
    {
      if($admin){
        if($data->Available == "1"){
          echo '<option value="'.$data->Event_Type.'">'.$data->Event_Type.' (Available)'.'</option>';
        }
        if($data->Available == "0"){
          echo '<option value="'.$data->Event_Type.'">'.$data->Event_Type.' (UnAvailable)'.'</option>';
        }
      }
      else{
        if($data->Available == "1"){
          echo '<option value="'.$data->Event_Type.'">'.$data->Event_Type.'</option>';
        }
      }
    }
    ?>
</select>

但是,只要我添加另一个框(复制粘贴),它就会破坏我的其余代码并收到错误:

  

不能将stdClass类型的对象用作带有选择框的数组

1 个答案:

答案 0 :(得分:0)

啊!它变得混乱,因为你有一个数组和一个名为$ data的循环变量。尝试使用不同的名字!

<select id="eventtype">
  <?php
    foreach($data['EventType'] as $type)
    {
        if($admin){
            if($type->Available=="1"){
                echo '<option value="'.$type->Event_Type.'">'.$type->Event_Type.' (Available)'.'</option>';
            }
            if($type->Available=="0"){
                echo '<option value="'.$type->Event_Type.'">'.$type->Event_Type.' (UnAvailable)'.'</option>';
            }
        }
        else{
            if($type->Available=="1"){
                echo '<option value="'.$type->Event_Type.'">'.$type->Event_Type.'</option>';
            }
        }
    }
    ?>
</select>