我的项目中有一点自动完成功能,jQuery UI插件自动完成。但是我在表格中输入的元素不按顺序排出,如下所示:
这是显示网络的萤火虫:
这是我的自动填充功能:
<script>
$(document).ready(function () {
var $search = $( "#city_name" );
$search.autocomplete({
source: function( request, response ) {
$.ajax( {
url: '{{ (path("app_autocomplete_city")) }}',
dataType: "json",
data: {
term: request.term
},
success: function( data ) {
response( data );
}
});
},
minLength: 1
});
});
</script>
这里是我的控制器,我在那里做JSON响应:
public function ajaxAutoCompleteCityAction(Request $request)
{
$em = $this->getDoctrine()->getManager();
$cities = $em->getRepository('AppBundle:City')->getCityAutocomplete($request->query->get('term'));
$formattedData = array();
foreach ($cities as $city) {
$formattedData[] = array(
'value' => $city['name'],
);
}
return new JsonResponse($formattedData);
}
所以我想知道我怎么能按字母/数字顺序把它放在一起才能有一个好的输出。
谢谢
答案 0 :(得分:1)
您只需使用方法ksort&amp;将城市名称添加到数组键和&amp;然后在后端按键对它进行排序
$formattedData = array();
foreach ($cities as $key => $city) {
$formattedData[$city['name']] = array(
'value' => $city['name'],
);
}
ksort($formattedData);
return new JsonResponse($formattedData);