【问题标题】:Populating drop down select menu from rows in MySQL从 MySQL 中的行填充下拉选择菜单
【发布时间】:2012-02-23 13:38:44
【问题描述】:

我正在开发一个网站,用户可以在其中添加朋友。在这里,我使用了一个简单的SELECT 语句来显示哪些用户当前等待 成为朋友。到目前为止,这是我所拥有的:

while ($row = mysql_fetch_array($result))
{
<tr>
    <td><img src="<?=$photo;?>" /></td>
    <td><?=$realname;?></td>
    <td><?=$userid;?></td>
    <td><?=$username;?></td>
    <td>
        <select name="action">
            <option value="skip">Skip (no action)</option>
            <option value="accept">Accept</option>
            <option value="deny">Deny</option>
        </select>
        <input type="hidden" name="uid" value="<?=$userid;?>" />
    </td>
</tr>
}

现在,我不太确定 select 部分。如果我只为一个用户选择选项,这很容易处理,但是我应该如何去做,以便当我为两个不同的用户选择不同的选项时,我仍然能够分离结果?因为现在,它给我的是uid=1&amp;action=accept&amp;uid=2&amp;action=deny。我正在考虑将选择名称从action 更改为action[],但我可能错了。任何帮助将不胜感激。

【问题讨论】:

  • 如果你将查询显示给mysql本身会更好。
  • 我认为这无关紧要。这是一个简单的SELECT * FROM users WHERE pending=1 声明,我只是使用extract 将它们设为变量。

标签: php mysql select loops


【解决方案1】:

您可以使用 uid 作为您操作的键。例如:

<select name="action[<?php echo $userid; ?>]">
    <option value="skip">Skip (no action)</option>
    <option value="accept">Accept</option>
    <option value="deny">Deny</option>
</select>

【讨论】:

  • 收到后应该如何处理?剥离“行动”?
  • 我不确定我是否明白你在问什么。你不需要剥离任何东西。你可以简单地运行foreach ($_GET['action'] as $userId =&gt; $action)
  • 我现在明白了。我认为[ 是一个错字。它缺少右括号。
  • 谢谢。这正是我所需要的。
【解决方案2】:

使用复选框而不是选择。 并将用户 ID 作为复选框名称传递

<td><checkbox name="skip[] value="<?=$userid?>"></td> 
<td><checkbox name="accept[] value="<?=$userid?>"></td> 
<td><checkbox name="deny[] value="<?=$userid?>"></td> 

所以,在服务器端,您将拥有 3 个带有用户 ID 的数组:
$_POST['skip'] 以及要跳过的 ID 等等

【讨论】:

  • 我猜单选按钮更适合这种情况,因为您应该只能执行三个操作之一。
  • 是的,收音机似乎更好。
猜你喜欢
  • 2012-07-24
  • 1970-01-01
  • 1970-01-01
  • 2015-07-04
  • 1970-01-01
  • 2022-11-17
  • 1970-01-01
  • 2014-12-11
  • 1970-01-01
相关资源
最近更新 更多