【发布时间】:2015-06-23 17:01:16
【问题描述】:
我想我几乎解决了这个问题,但我不太明白为什么我的解决方案不起作用。我正在尝试从使用 MySQL 表的 php 下拉列表中预先选择一个项目。下拉列表按预期填充,但预选不起作用。我的代码:
echo $Trans1E; // Display Existing value
echo '<p>Trans1: ';
$q = "SELECT TR1_Name FROM sb_TR1 ORDER BY TR1_Name";
$r = @mysqli_query ($dbc, $q);
$row = mysqli_fetch_array ($r, MYSQLI_NUM);
echo "<select name='Trans1' value=''>Trans1</option>"; // list box select command
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC))
{//Array of records stored in $row
$selected='';
if($row[TR1_Name]==$Trans1E) //determine if the row value is the same as the Existing
{//if it it then mark as selected
echo "<option value=$row[TR1_Name] selected='selected'>$row[TR1_Name]</option>";
}
else
{// if it is not then just inlcude it in the drop down list
echo "<option value=$row[TR1_Name] >$row[TR1_Name]</option>";
}
}
echo "</select>";// Closing of list box
echo '
</p>';
我在这个论坛上看到了类似的下拉列表,我已将其合并到我的代码中,或者至少尝试过但没有成功,我怀疑以下错误:if($row[TR1_Name]==$Trans1E ),但是已经没有东西可以尝试了。
【问题讨论】:
-
$row[TR1_NAME]是(希望)会在你的if()语句中为“未定义的常量,假设字符串”吐出大量的 php 警告。您是否确认 $trans1e 和$row['tr1_name']是否包含您认为它们应该包含的内容?即使是某个地方的额外空间也会把它扔掉,例如'foo' == 'foo[space]'是假的。 -
如果您在浏览器中查看源代码,您可以看到任何选项上的选定属性吗?