如何在同一表单中发布来自多个下拉菜单的值


How to post values from multiple drop down menus in the same form

我有一个表单,每行都有一个唯一标识符。我还有一个带有用户名的下拉菜单。

基本上每行都有一个任务,每个任务旁边都有一个下拉菜单,其中包含任务所有者的名称。 我需要做的是能够发布用户名及其任务 ID,以便我可以在一次提交中更新任务的所有者。

假设以下是我的表格

    ID    Title        MENU
    1     Task 1       (please select)
    2     Task 2       (please select)
    3     Task 3       (please select)
make_change

如果用户在第 1 行选择了"Mike",那么我想使用 Mike 的 ID 更新数据库,这是下拉菜单中 Mike 的选项值。

我在尝试将每个菜单链接到正确的行 id"任务 id"时遇到困难的事情。这就是我的菜单代码的显示方式

<select name="user_id[]">
<option value="200">Mike</option>
<option value="205">Jaylen</option>
<option value="220"> Jack</option>
</select>
我希望能够将每个菜单链接到正确的

任务 ID,以便在发布表单时可以将每个菜单链接到正确的行。

如何在每个菜单中包含任务 ID?

谢谢

所以,我的理解是你需要知道哪个Task ID与哪个select有关?

假设你在PHP中创建select,你可以简单地改变

<select name="user_id[]">

<select name="user_id[TASK_ID]">

其中TASK_ID是任务的实际 ID...(例如 123等)。

然后,当您提交到 PHP 时,您可以使用例如foreach循环来循环$_POST[user_id]...

foreach($_POST['user_id'] as $taskid => $userid){
    //Do something with the information....
}

更新

如果您知道TASK_ID则无需遍历整个帖子,则可以使用以下方法访问必填字段:$_POST['user_id'][TASK_ID]

例如。。。

echo $_POST['user_id'][1]; //Echo's the user id for task 1
echo $_POST['user_id'][8]; //Echo's the user id for task 8

与其将 select 标签的名称设为数组,不如将它们设为唯一的名称。这样,每一行都可以唯一标识。例:

<select name="task1">
    <option value="200">Mike</option>
    <option value="205">Jaylen</option>
    <option value="220"> Jack</option>
</select>
<select name="task2">
    <option value="200">Mike</option>
    <option value="205">Jaylen</option>
    <option value="220"> Jack</option>
</select>

这样,task1 将映射到在任务 1 的下拉列表中选择的任何内容,并且与任务 2 下拉列表中相同的内容。