Rah*_*ngh 9 javascript jquery json
我是一个在jQuery中使用JSON解析的完整菜鸟.以为我收到了回复......我的数据是这样的:
Array(
[1]=>abc,
[3]=>mango,
[4]=>apple,
[5]=>fruits
)
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我希望此列表显示为自动完成列表.我在用.
jQuery("#name").autocomplete( '<?php echo HTTP_PATH.'/songs/sss'; ?>', {
multiple: true,
mustMatch: true,
matchContains: true,
autoFill: false,
dataType: "json",
parse: function(data) {
return jQuery.map(data, function(item) {
return { data: item, value: item.label, result: item.label};
});
},
formatItem: function(item) {
return item.label;
},
formatResult: function(item) {
return item.id;
},
formatMatch: function(item) {
return item.label;
}
});
Run Code Online (Sandbox Code Playgroud)
我想要显示列表时的值,即我的数据中的标签.当我选择标签时,它应该显示标签.但在提交时,它实际上应该提交密钥.我的意思是我想让它作为HTML的选择框工作.
返回JSON
[{"id":1,"label":"Mehdi Hassan"},{"id":2,"label":"Jagjit Singh"},{"id":3,"label":"Suresh Vadekar"}]
Run Code Online (Sandbox Code Playgroud)
IPr*_*ory 11
你的JSON似乎不是一个数组,只是一个对象(哈希映射).查看官方文档:
预期的数据格式
来自本地数据,网址或回调的数据可以有两种变体:
字符串数组:["Choice1","Choice2"]
具有标签和值属性的对象数组:[{label:"Choice1",value:"value1"},...]
在您的情况下,它应采用以下格式:
[
{"1":"Shad.aab"},
{"158":"Adadad"},
{"159":"Asdadad"},
{"166":"Abbas"},
{"167":"Sdadad"},
{"171":"Shadaab Please check it out"},
{"173":"Check This Please"},
]
Run Code Online (Sandbox Code Playgroud)
(请记住,左侧是标签,右侧值,我想在您的数据中,所有都应该颠倒...)
如果我对您的理解正确,则希望使用自动完成功能来填充名称文本字段,但希望利用与POST形式的名称关联的另一个值。
[如果您能够使用最新的jQueryUI版本的自动完成功能] -按照http://jqueryui.com/demos/autocomplete/#custom-data上的“自定义数据和显示”自动完成示例,您将在自动完成时看到该信息提示,它们将显示选定的标签,但是,它们还将关联的值保存在隐藏的输入中,该输入也将发布回服务器。给定您当前的json格式:
的HTML:
<label for="username">Name:</label>
<input id="username" size="50" /> <!-- holds display name -->
<input id="userid" name="userid" size="50" /> <!-- holds userid -->
...
Run Code Online (Sandbox Code Playgroud)
js:
<script>
$("#username").autocomplete({
source: '<?php echo HTTP_PATH.'/songs/sss'; ?>',
// Update display name when user mouses over selection
focus: function( event, ui ) {
$( "#username" ).val( ui.item.label );
return false;
},
// Set display name and hidden input on user selection
select: function( event, ui ) {
$( "#username" ).val( ui.item.label );
$( "#userid" ).val( ui.item.id );
return false;
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
php POST目标:
<?php
// Use [hidden] input to do your magic
if(isset($_POST['userid']))
echo 'Wooo..here is my key: ' . $_POST['userid'];
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3670 次 |
| 最近记录: |