如何以相同的形式发布多个下拉菜单中的值

时间:2013-09-09 21:42:03

标签: php

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

基本上每行都有一个任务,每个任务旁边都有一个带有任务所有者名称的下拉菜单。我需要做的是能够发布用户名及其任务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?

由于

2 个答案:

答案 0 :(得分:1)

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

假设您在PHP中创建select,您只需更改

即可
<select name="user_id[]">

<select name="user_id[TASK_ID]">

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

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

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

答案 1 :(得分:0)

不是将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将映射到task1下拉列表中选择的任何内容,以及task2下拉列表中相同的内容。