2013-03-17 76 views
0

我有这个代码从Mysql的字段“类别”收集类别,它是一个部分编辑形式,我想要在列表填充后选择之前选择的类别,代码是:编辑形式的选择列表

<td align="right">Category</td> 
    <td> 
     <?php 
     // Write out our query. 
     $query = "SELECT id,cat_name,parent FROM categories WHERE parent='0'"; 
     // Execute it, or return the error message if there's a problem. 
     $result = mysql_query($query) or die(mysql_error()); 
     $dropdown = "<select name='category'>"; 
     while($row = mysql_fetch_assoc($result)) { 
     $dropdown .= "\r\n<option value='{$row['id']}'>{$row['cat_name']}</option>"; 
     } 
     $dropdown .= "\r\n</select>"; 
     echo $dropdown; 
     ?> 
     </td> 

我不知道该怎么做?我知道我应该在我想要选择的选项上键入“选定”,但在填写名单后如何选择它?

+0

你在哪里保存先前的选择?如果你没有坚持下去,服务器不知道你之前选择了什么。 – 2013-03-17 14:01:56

回答

0

您可以使用索引标签$tab["key"]这样您可以轻松找到所需的行并对其进行编辑。

编辑:你的消息不是很清楚,但我想那是你想要做的。否则,请澄清。

+0

我使用变量来从数据库检索使用产品的ID,我有一个名为“类别”的变量,它具有我想在列表中选择的类别的名称,但是如何在填充后选择它,多数民众赞成我的问题 – user2003332 2013-03-17 14:08:29

+0

就像我说的,使用和索引选项卡:$ dropdown [“categoryname”]这种方式,你可以很容易地找到填充选项卡后的好行。或者直接在循环中检查,就像Liam建议的那样。 – Maresh 2013-03-17 14:11:12

0

在你的代码中,你并没有检查用户以前选择了什么。你可以做到这一点是这样的:

$selected = ''; 
if($row['id']==$userSelectedOption) $selected = ' selected="selected"'; 
$dropdown .= "\r\n<option value='{$row['id']}'{$selected}>{$row['cat_name']}</option>"; 

在上面的例子,我们有一个名为$userSelectedOption表示用户已经选择变量的值。我们还假设它是一个类别的ID。在您的while循环中,您将使用上述3行而不是一行。当这个呈现出来时,列表将具有所选择的项目是什么匹配$userSelectedOption