【问题标题】:search autocomplete ajax in laravel在 laravel 中搜索自动完成 ajax
【发布时间】:2021-11-30 08:37:36
【问题描述】:

我正在使用ajax进行实时搜索,但问题是它只显示一个结果

当我使用 .html() 但当我使用 append() 时它可以工作,但我写的每个单词都是为了复制结果,

这是我的代码:

在控制器中,

   $patient = Patient::select('id', 'avatar')
        ->where('phone_number', 'like', '%' . $search_query . '%')
        ->orWhere('first_name', 'like', '%' . $search_query . '%')
        ->limit(15)
        ->get();
        return $patient;

刀片中的ajax代码

    $("#search-eng").keyup(function() {
        let search_query = $(this).val();
        if (search_query != "") {
            $.ajax({
                url: '{{ url('/appointment/calander_patient_search') }}/' +
                    search_query,
                type: "GET",
                dataType: "json",
                success: function(data) {
                    $("#search-eng-show-list").show();

                    if (data !== "") {

                        $.each(data, function(key, value) {

                            $('#search-eng-show-list').html(

                                '<a data-id="' + value.id + '"' value.second_name + '</a>');
                        });
                    }
                    if (data == "") {
                        $('#search-eng-show-list').html(
                            '<a><i "></i>No Record</a>'
                        );
                    }
                },
            });
        } else {
            $("#search-eng-show-list").empty();
            $("#search-eng-show-list").hide();;
        }
    });

【问题讨论】:

    标签: javascript php jquery ajax laravel


    【解决方案1】:

    是的,您在循环语句中设置了内容,因此它只会采用最后一个内容。

    你可以使用一些缓冲区变量:

    if (data !== "") {
       var html = '';
    
       $.each(data, function(key, value) {
           html += '<a data-id="' + value.id + '"' value.second_name + '</a>');
       }
    
       $('#search-eng-show-list').html(html);
    
       // ....
    

    【讨论】:

    • 非常感谢,它运行良好。很抱歉问,但是什么更好,使用上面的搜索引擎或通过控制器发送所有结果,包括 HTML,然后将它们传递给 div?
    • 最好还是发送 JSON,然后你的前端可以轻松地操作它们。最好使用一些 JS 框架(VueJS、React...),它们具有数据绑定功能,可以让您更轻松地操作 JSON 数据。 jQuery 有点过时了。
    • 感谢您的帮助,我很快就会学习它们。
    猜你喜欢
    • 2017-03-28
    • 2013-12-03
    • 1970-01-01
    • 2018-01-29
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 2019-05-05
    相关资源
    最近更新 更多