我有一个选择列表,其中动态填充了来 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";
?>
更新
所以我希望 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/