在多选表单字段中获取选定的值

时间:2018-09-28 14:29:12

标签: php mysqli

我正在将一个PHP表单字段从一个下拉列表(选择单个值)更新为一个多选(选择多个值)。

我有2个数据库表,一个表中包含团队成员的完整列表,另一个表中包含选定的团队成员。

在PHP页面上,我想从完整的团队成员表中获取值,并将完整列表显示为多选表单字段。

然后,我希望能够从选定的团队成员表中获取值,并将其显示为上述完整多选列表中的选定选项。

关于如何实现此目标的任何想法吗?

这是我的代码,尽管现在它只是返回没有选定值的完整团队成员列表。

    $query = "SELECT walkername FROM Team_Management WHERE active=1 ORDER BY walkername ASC";  
                        $stmt = $mysqli->prepare($query) or die ("Couldn't execute query: ".mysqli_error($mysqli));
                        $stmt->execute();
                        $stmt->bind_result($walkers);

                        echo "<div class='form-group'>";
                        echo "<label class='col-lg-3 control-label' for='Walkers'>Walkers:</label>";
                        echo "<div class='col-lg-5'>";
                        echo "<select multiple class='form-control' name='walkers[]' id='Walkers'>";


                        while ($stmt->fetch()) {
                          echo "<option value='$walkers'>$walkers</option>";
                        }

                        echo "</select>";
                        echo "</div>";
                        echo "</div>";

                        $stmt->close();

**更新**

所以我应该添加的一件事是,SELECTED_TEAM_MEMBERS字段是一个逗号分隔的字段。

TEAM_MANAGEMENT表

id ||步行者姓名

1 ||约翰

2 ||凯特

SELECTED_TEAM_MEMBER表

cid ||步行者

1 |约翰·雷·凯特

2 |凯特·马特·乔

此外,SELECTED_TEAM_MEMBER表中的walkers字段中的每个组都绑定到唯一的客户端ID(cid)。

那么我如何通过唯一的客户端ID从TEAM_MANAGEMENT表的完整列表中识别选定的步行者。

1 个答案:

答案 0 :(得分:0)

您可以在SQL请求中使用布尔值获取所选用户的列表

SELECT walkername, 
       CASE WHEN **selected_team_members_name** > '' THEN '1' ELSE '0' END as is_selected 
FROM Team_Management 
   LEFT OUTER JOIN **SELECTED_TEAM_MEMBERS** ON **selected_team_members_name** = walkername
WHERE active=1 
ORDER BY walkername ASC

使用 selected_team_members_name 表中的列名称,并使用SELECTED_TEAM_MEMBERS表的名称

现在$ walker是带有2个键的数组:walkername和is_selected

然后您可以尝试在编写“ option”标签时是否将其设置为“ selected”属性

while ($stmt->fetch())
{
    $selected = "";
    if($walkers['is_selected'] == '1'){ //If your walker is selected
        $selected = "selected";
    }
    echo "<option ".$selected." value=".$walkers['walkername'].">".$walkers['walkername']."</option>";
}

我可能不了解上下文,但希望我能对您有所帮助。