2012-01-31 65 views
1

我正在开发一个网站,其中用户可以添加好友。在这里,我使用一个简单的SELECT声明来显示哪些用户当前有待定成为好友。这是我到目前为止有:从MySQL中的行填充下拉选择菜单

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&action=accept&uid=2&action=deny。我正在考虑将选择名称从action更改为action[],但我可能是错的。任何帮助将不胜感激。

+0

它将如果你会更好将查询显示给mysql本身。 – Seagull 2012-01-31 20:19:04

+0

我不认为这很重要。这是一个简单的'SELECT * FROM users WHERE pending = 1' statment,我只是使用'extract'来使它们变量。 – 2012-01-31 20:23:48

回答

0

您可以使用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> 
+0

我应该如何处理它然后收到?剥离“行动”? – 2012-01-31 20:19:51

+0

我不确定我明白你在问什么。你不需要去掉任何东西。你可以简单地运行一个'foreach($ _GET ['action']为$ userId => $ action)' – Crashspeeder 2012-01-31 20:23:07

+0

我现在明白了。我认为'['是一个错字。它缺少右括号。 – 2012-01-31 20:25:43

0

使用复选框而不是选择。 和传球的userid复选框名

<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']与被跳过IDS等

+0

我猜测单选按钮对于这种情况更适合,因为你应该只能执行三个动作之一。 – Crashspeeder 2012-01-31 20:32:14

+0

是的,它似乎收音机甚至更好。 – 2012-01-31 20:41:12

相关问题