按字母顺序/数字顺序排序 - jQuery UI

时间:2017-05-02 09:24:42

标签: jquery symfony

我的项目中有一点自动完成功能,jQuery UI插件自动完成。但是我在表格中输入的元素不按顺序排出,如下所示:

enter image description here

这是显示网络的萤火虫:

enter image description here

这是我的自动填充功能:

<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);
    }

所以我想知道我怎么能按字母/数字顺序把它放在一起才能有一个好的输出。

谢谢

1 个答案:

答案 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);