从mysql的下拉列表中获取正确的记录
我正在使用一个表单,用户可以编辑条目。一切都在填充,一切都很好,除了我无法下拉显示他们已经分配了图像的项目。从mysql的下拉列表中获取正确的记录
$project_qry = "SELECT * from projects ORDER BY title ASC";
$project_res = mysql_query($project_qry);
$project_drop = "<select name=\"project_id\">\n";
while ($row = mysql_fetch_array($project_res))
{
if ($project_id == $row[title])
{
$project_drop .= "<option value=\"$row[id]\" selected>$row[title]</option>\n";
}
else
{
$project_drop .= "<option value=\"$row[id]\">$row[title]</option>\n";
}
}
$project_drop .= "</select>\n";
我确定这是一件非常简单的事,但我很难过。
{
if ($project_id == $row[id])
{
$project_drop .= "<option value=\"$row[id]\" selected=\"selected\">$row[title]</option>\n";
}
else
{
$project_drop .= "<option value=\"$row[id]\">$row[title]</option>\n";
}
}
您需要比较值而不是标题。它是获得发布的值($ _POST)
selected =“selected”使其符合XHTML标准。
bigstylee正确回答。我也建议分开数组和字符串的值:
$project_drop .= "<option value='". $row['id'] ."'>".$row['title']."</option>";
也放下\ n。输出\ n不会在浏览器中产生换行符。这是没有必要的。
我在我的代码中也使用\ n。生成的html格式更好,这有助于调试,特别是当您在选择中有大量选项时。 – webbiedave 2010-04-08 18:52:38
只是一个小小的修复:把价值(撇号')价值... “
哎呀,谢谢dar7。 @webbiedave:谢谢你的输入。 DOM树如何对它做出反应? – Kel 2010-04-08 19:06:11
要添加到此答案,您应该始终引用像这样的关联索引:$ row ['id']。你也应该使用花括号将数组转换为字符串:$ s =“{$ row ['id']}”; – webbiedave 2010-04-08 18:46:38
在双引号字符串中引用数组键不是必需的。 PHP假定它是一个字符串键并作相应的处理。只有在输出多维数组值时,或者绝对必须使用带引号的键语法时,才需要大括号表示法。 – 2010-04-08 19:06:29
真棒添加到答案! – 86Stang 2010-04-08 19:44:28