2012-01-31 137 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