php - 带有硬编码选择的动态下拉菜单

标签 php mysql dynamic drop-down-menu hardcoded

我一直在该网站上(并通过 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 文件中调用的 PHP 文件(与 div 的主体相同)。所讨论的 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

最佳答案

如果我对您的问题的理解正确,您所要做的就是在列表顶部插入一个硬编码选项,在动态生成的选项之前。

只需这样做:

echo "<td><select id='bids_id' class='ui-widget-content ui-corner-all normalselect' style='width: 150px'>";
echo "<option value = '0'>Choose One</option>";
$sql = "SELECT etc etc etc
etc.

请注意,您不需要在第一个默认选项标签(“选择一个”选项)上指定所选属性,因为它会自动成为所选选项IF 没有别的选择。我相信这就是您想要的。


不过,我会做的是将所有值分配给一个变量,然后回显该变量,这样所有内容都会同时出现。像这样:

$opt = "<td><select id='bids_id' class='ui-widget-content ui-corner-all normalselect' style='width: 150px'>";
$opt .= "<option value = '0'>Choose One</option>";

$sql = "SELECT etc etc etc";
$querybids = $db->query($sql);

while($row = $querybids->fetch_object()) {
    $opt .= "<option value='{$row->id}' ". ($row->id == $timeinfo->relatedbid ? "selected=selected" : "") .">{$row->name}</option>";
}

echo $opt;

关于php - 带有硬编码选择的动态下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18476692/

相关文章:

mysql - JSP 和 MySQL 的外键

php - 使用 volley 和 php 在 android 中发布 utf8(波斯语或阿拉伯语)

html - 具有动态大小的 CSS div 表行

c# - WPF 中的动态工具提示

PHP - MYSQL 搜索引擎 - 匹配搜索框中单词的特定字母

php - 从 mysql 数据库中读取特定数据

php - mySQL 到 PHP 到 jQuery 返回浮点值作为字符串 (JSON)

javascript - rql 从 javascript 中的 rethinkdb 键列表中获取多个文档

PHP 尝试,捕获优先级和继承

php - 为网站最终集成到 MySQL 和 Google Maps API 中创建数据集? (多边形中的点、碰撞定理等)