选择无法显示在其他行中的选项

时间:2015-11-09 08:35:00

标签: php html html-select

我在<table>中有这个特殊代码。 Select Option仅显示第一行中显示的详细信息和其他选项,而不显示其他选项。

从图像中,保存在数据库中的数据仅显示在第1行Select Option而不显示在另一行。

enter image description here

代码已经结束了:

  <table class="table table-striped table-hover ">
           <thead>
                <tr>
                   <th>Staff Name</th>
                   <th>Current Role</th>
                   <th>Select Role</th>
                </tr>
           </thead>
           <?php
            while ($row = mysqli_fetch_assoc($successStaffQuery)) {
                $staffId = $row['staff_id'];
                $staffName = $row['staff_name'];
                $staffRole = $row['role_type'];
            ?>
                 <tr>
                   <td><?php echo $staffName; ?></td>
                   <td><?php echo $staffRole; ?></td>
                   <td>
                        <div class="form-group">
                             <form action="doChangeRole.php" method="post" name="register">
                                 <input type="hidden" name="getStaffId" value="<?php echo $staffId ?>" >
                                 <div class="form-group">
                                 <select class="form-control" onchange="this.form.submit()" id="select" name="roleChange">
                                  <?php
                                      while ($role = mysqli_fetch_array($successRoleQuery)) {
                                        if ($row['role_id'] = $role['role_id']) {
                                            ?>
                                            <option value="<?php echo $role['role_id']; echo 'selected'; ?>"><?php echo $role['role_type']; ?></option>
                                  <?php
                                   }
                                        }
                                 ?>
                                 </select>
                       </div>
                         <noscript><input type="submit" value="Submit"></noscript>
                            </form>
                  </div>
                  </td>
              </tr>
                        <?php
                    }
                    ?>
   </table>

根据我的理解,数据应该显示,但在这种情况下,select option刚刚在第一行成功显示选项后停止运行。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

你的代码中有很多错误:

  1. 如果行角色_id = role_id为$ role
  2. ,则仅添加选项
  3. 你没有比较,你将$ role [&#39; role_id&#39;]分配给$ row [&#39; role_id]
  4. 您将所选标记输出到您的值标记中吗?
  5. 将您的选项代码更改为以下内容(删除错误的if标记

    //loop your success query
    while ($role = mysqli_fetch_array($successRoleQuery)) {
        //output the options
        //add selected tag only to one option
        echo
            '<option value="'.$role['role_id'].'"'.($role['role_id'] == $row['role_id'] ? ' selected': '').'>'
                .$role['role_type']
            .'</option>';
    };
    

    代码未经测试!