Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自动完成所选项目的未定义id_Javascript_Php_Laravel_Jquery Ui - Fatal编程技术网

Javascript 自动完成所选项目的未定义id

Javascript 自动完成所选项目的未定义id,javascript,php,laravel,jquery-ui,Javascript,Php,Laravel,Jquery Ui,我试图在控制台中打印所选元素的id,但我得到了一个未定义的变量。在我的控制器中,我返回一个json,其中包含来自eloquent的结果。有人知道我做错了什么吗?控制器看起来像: public function search(Request $request) { $search = $request->get('term'); $result = Recipe::where('name', 'LIKE', '%'. $search. '%')-&g

我试图在控制台中打印所选元素的id,但我得到了一个未定义的变量。在我的控制器中,我返回一个json,其中包含来自eloquent的结果。有人知道我做错了什么吗?控制器看起来像:

public function search(Request $request)
    {
        $search = $request->get('term');

        $result = Recipe::where('name', 'LIKE', '%'. $search. '%')->get();

        return response()->json($result);
    }
我的剧本:

<script>
        $(document).ready(function() {
            $( "#search" ).autocomplete({

                source: function(request, response) {
                    $.ajax({
                        url: "{{ route('autocomplete') }}",
                        data: {
                            term : request.term,
                        },
                        dataType: "json",
                        success: function(data){
                            console.log(data);
                            var resp = $.map(data,function(obj){
                                return obj.name;
                            });

                            response(resp);
                        }
                    });
                },
                minLength: 1,
                select: function (event, ui) {
                    console.log(ui.item.id)
                },

            });
        });
    </script>
Obj返回,正如您可以看到的,Obj有键id和值,但当我尝试使用它们时,选择了返回未定义的选项

{id: 1, name: "Lorem ipsum", description: "Similique libero quas at qui architecto illum aliq…ut officia rerum dolor illum est quod voluptatem.", required_time: 19, level: 5, …}

尝试使用collection
toJson
方法:

return response()->json($result->toJson());

另外,如果您只需要名称,只需要从数据库中获取名称,那么脚本将增加预先填充字段的时间

so console.log(data)返回undefined?否,当我尝试打印所选元素的console.log(ui.item.id)时undefined@JaroslawNowak请提供您的
obj
数据的exmaple。看起来你只发送了一个名称数组,因此没有
id
@Twisty更新了我的帖子并添加了返回的obj和示例元素的数据。当我使用toJson时,会出现“未捕获类型错误:无法使用'in'运算符搜索'length'”错误:/Json.parse(数据)在地图内部应该解决此问题错误已解决,但我在尝试打印id时仍然未定义:(
return response()->json($result->toJson());