gpt4 book ai didi

jquery - bootstrap typeahead 返回名称和 id

转载 作者:行者123 更新时间:2023-12-03 22:42:36 25 4
gpt4 key购买 nike

嘿!我正在使用 twitter bootstraps typeahead:

我正在调用一个返回带有 json_encode 的响应的页面该页面返回一个名称和一个 ID,

我希望输入列表能够显示姓名列表,当我选择其中一个名字时将 id 值写入隐藏字段。

调用工作正常,并且编写字段应该很容易。我不知道该怎么做是如何将名称与 ID 分开。

现在,当我搜索某些内容时,在建议列表中我可以看到如下返回结果:

名称1:id1名称2:id2

我只想看到名称,但也想携带 id 的值。

我该怎么做?

 $(function(){
$("#typeahead_<? print $key; ?>").typeahead(
{
source: function(query, process)
{
$.ajax({
url: '/getAjaxProducts',
type: 'POST',
data: 'query=' + query,
dataType: 'JSON',
async: true,
success: function(data)
{
process(data);
}
});
}
});
});

最佳答案

包含名称/ID 对的典型 JSON 文档如下所示:

[
{
"id": 1
"name": "firstName"
},
{
"id": 2
"name": "secondName"
}
]

这里的策略是构建一个对象文字,在解析结果时将名称映射到 ID,同时仅使用名称来填充预先输入:

var productNames = new Array();
var productIds = new Object();
$.getJSON( '/getAjaxProducts', null,
function ( jsonData )
{
$.each( jsonData, function ( index, product )
{
productNames.push( product.name );
productIds[product.name] = product.id;
} );
$( '#product' ).typeahead( { source:productNames } );
} );

用户从预输入中选择一个项目后,您可以通过以下方式引用所选项目:

$( '#product' ).val()

您可以通过以下方式获取与所选项目关联的 ID:

productIds[$( '#product' ).val()]

从您的问题来看,您的 JSON 文档的结构可能略有不同,因此您将根据需要更改解析,但适用相同的一般策略。

关于jquery - bootstrap typeahead 返回名称和 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14136973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com