【发布时间】:2013-08-30 20:45:37
【问题描述】:
我一直在该网站上搜索(并通过 Google),但我想我的问题可能表述错误。
这是我的情况。我有这个动态填充的下拉列表(它正在工作),在某些情况下,它可以接收一个值来显示特定选项。
echo "<td><select id='bids_id' class='ui-widget-content ui-corner-all normalselect' style='width: 150px'>";
$sql = "SELECT
`bids`.`id`,
`bids`.`name`
FROM
`bids`
Inner Join `bids_primes` ON `bids`.`id` = `bids_primes`.`bid_id`
WHERE
`bids_primes`.`tid` = '". $db->real_escape_string($_SESSION['Current_TID']) ."'
";
$querybids = $db->query($sql);
while($row = $querybids->fetch_object()) {
echo "<option value='{$row->id}' ". ($row->id == $timeinfo->relatedbid ? "selected=selected" : "") .">{$row->name}</option>";
}
现在我唯一尝试做的事情是添加一个“硬编码”选项,其值为“0”,文本为“其他”。此选择也应受相同机制的约束(可以指定为预先选择)。
[更新] 因此,为了帮助了解我的情况,这里是这部分之前的代码。这是从另一个 PHP 文件(与 div 相同的主体)中调用的 PHP 文件。有问题的 PHP 是一种输入表单,用于新数据输入和现有数据的修改(并与数据库交互)。
脚本根据它作为参数接收的“entry_id”知道它是添加还是修改,有点像函数。
if(isset($_REQUEST['entry']) && ($_REQUEST['entry'] > 0)) {
$sql = "SELECT
`cap_plan`.`entryid`,
`cap_plan`.`startdate`,
`bids`.`name`,
`cap_plan`.`duration`,
`cap_plan`.`description`,
`cap_plan`.`relatedbid`
FROM
`cap_plan`
LEFT JOIN
`bids` ON `cap_plan`.`relatedbid` = `bids`.`id`
WHERE
`cap_plan`.`entryid` = '". $db->real_escape_string($_REQUEST['entry']) ."'
";
$timeinfo = $db->query($sql)->fetch_object();
}
else {
$timeinfo = new StdClass();
$timeinfo->entryid = 0;
$timeinfo->employee = $_SESSION['name'];
$timeinfo->startdate = date("Y-m-d");
$timeinfo->duration = "";
$timeinfo->description = "";
$timeinfo->relatedbid = "0";
}
这里有一个截图来帮助说明这一切: http://i.imgur.com/EYcXfO9.png
【问题讨论】:
-
为什么不在
while语句之前回显选择选项?echo "<option value=\"0\" ". ($row->id == $timeinfo->relatedbid ? "selected=selected" : "") .">Other</option>"? -
我不知道这是可能的。让我试试这个并在之后更新线程。
-
仅供参考,在调用
while之前,您还没有获取$row对象,因此$row将是未定义的,您需要另一种方法来确定将选择“其他”选项。 -
为第一个解决方案点赞,因为它解决了我的问题。现在,对于最后的提示,我将不得不四处玩耍并做一些研究,以确保它能够正常工作。您是否建议我使用类似于此的格式: $row = $querybids->fetch_object(); echo "id == $timeinfo->relatedbid ? "selected=selected" : "") .">其他"; while($row) { echo ""; }
-
我感觉您对 PHP/MySQL 的交互方式没有最好的把握,而且您正在抓住稻草;您只是获取返回的第一行,这可能是也可能不是您想要的。老实说,我不知道你到底想在这里做什么。您只需要一种方法来判断是否要选择“其他”选项。也许是一个
if语句,它检测到您的while循环中的值 0 并设置一个标志?
标签: php mysql dynamic drop-down-menu hardcoded