javascript - 如何更改名称,而不是动态填充的选择列表的值?

标签 javascript php jquery getjson selectlist

我有一个选择列表,其中动态填充了来 self 的数据库的数据。但我不想让用户看到真实的列名,所以我在我的数据库中创建了一个额外的列,称为 column_alias。我想要的是在下拉列表中显示 column_alias 名称,但保留列名称的实际值。

这就是我现在用真实列名填充选择列表的方式:

function loadTables() {
        $.getJSON("dropdown_code/get_tables.php", success = function(data)
        {
            console.log('inside callback');
            var optionsTables = "";
            for(var i = 0; i < data.length; i++)
                {
                    optionsTables += "<option value='" + data[i] + "'>" + data[i] + "</option>";
                }

        $("#slctTable").append(optionsTables);
        $("#slctTable").change();
    }); 

}

这是从我的数据库中获取数据的代码:

<?PHP

    require "opendb.php";

    $query =    "select table_name 
                from db_tables 
                order by table_name";

    $data = pg_query($conn, $query);

    $table_names = array();

    while ($row = pg_fetch_array($data))
    {
        array_push($table_names, $row["table_name"]);
    }

    echo json_encode($table_names);

    require "closedb.php";
?>

更新

这是我的数据库表的样子: enter image description here

所以我希望 table_alias 在我的选择列表中可见,但我希望值是 table_name 以便它可以与我的数据库交互。

最佳答案

首先,您还需要从数据库中获取别名。将您的服务器端代码更改为以下内容。

<?PHP

require "opendb.php";

$query =    "select table_name,table_alias 
            from db_tables 
            order by table_name";

$data = pg_query($conn, $query);
$table_names = array();

while ($row = pg_fetch_array($data))
{
    array_push($table_names, $row);
}
echo json_encode($table_names);
require "closedb.php";
?>

然后在您的客户端代码中简单地输出 table_alias 作为选项名称和 table_name 作为选项值。

function loadTables() {
    $.getJSON("dropdown_code/get_tables.php", success = function(data)
    {
        console.log('inside callback');
        var optionsTables = "";
        for(var i = 0; i < data.length; i++)
            {
                optionsTables += "<option value='" + data[i]['table_name'] + "'>" + data[i]['table_alias'] + "</option>";
            }

    $("#slctTable").append(optionsTables);
    $("#slctTable").change();
}); 
}

关于javascript - 如何更改名称,而不是动态填充的选择列表的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37589316/

相关文章:

javascript - JS - setAttribute() 不起作用

javascript - backbone.js - 随请求获取额外数据

javascript - 使用 jQuery 在 DataTables 表中创建动态链接

php - Symfony - 表单事件 - 获取新旧数据

php - cURL 错误 : Cannot connect: SSL is disabled. 错误编号 35

php - 使用 PHP 查找客户端的 mac 地址

JavaScript 不透明问题

javascript - 鼠标悬停时更改特定 div 的不透明度,并添加文本标签

php - 从网站让 iPhone/智能手机振动,可能吗?

jQuery 滚动标题效果