Rumah  >  Soal Jawab  >  teks badan

Mengapa output keluaran saya dua kali dalam blade php?

Saya cuba melaksanakan bar carian langsung. Carian langsung berfungsi tetapi ia mencetak output dua kali yang menjengkelkan. Bolehkah anda lihat di mana masalahnya? Terima kasih.

Ini adalah kod fungsi carian saya.

public function search(Request $request)
    {
        if ($request->ajax()) {
            
            $output = "";
            $projects = Project::where('title', 'LIKE', '%' . $request->search . '%')
                        ->where('module_code',$request->module_code)
                        ->get();
            $count = count($projects);
            // $projects = array_unique($projects);
            if ($projects) {
                foreach ($projects as $project) {
                    $output .= '<tr>' .
                        '<td>' . $project->team_number . '</td>' .
                        // '<td>' . $count . '</td>' .
                        '<td>' . $project->lab . '</td>' .
                        '<td>' . '<a href="/projects/' . $project->id . '" style="display:block;"><b>' . $project->title . '</b></a>' . '</td>' .
                        '<td>' . $project-> latest_state. '</td>' .
                        '<td>' . $project->team_member_1 . '</td>' .
                        '<td>' . $project->latest_team_member_1_state . '</td>' .
                        '<td>' . $project->team_member_1 . '</td>' .
                        '<td>' . $project->latest_team_member_1_state . '</td>' .
                        '<td>' . $project->team_member_1 . '</td>' .
                        '<td>' . $project->latest_team_member_1_state . '</td>' .
                        '<td>' . $project->ta . '</td>' .
                        '<td>' . $project->created_at . '</td>' .
                        '<td>' .
                        '<button class="btn-sm btn-info pull-left" onclick="location.href = \'/projects/' . $project->id . '\'">Project Details</button> ' .
                        '</td>' .
                        '</tr>';
                }
                return Response($output);
            }
        }
    }

Berikut ialah skrip untuk carian langsung dalam php Blade:

<script type="text/javascript">
    const getQueryParams = (params, url)=>{
        let href = url;
        let regexp = new RegExp('[?&]' + params + '=([^&#]*)', 'i');
        let qString = regexp.exec(href);
        return qString ? qString[1] : null;
    }
    $('#search').on('keyup',function(){
        $value = $(this).val();
        //alert($value);
        $qString = getQueryParams('module', window.location.href);
        $queryString = 
        $.ajax({
            type : 'get',
            url  : '{{URL::to('search')}}',
            data : {'search':$value, 'module_code', $qString},
            success:function (data) {
                //console.log(data);
                //alert(data);
                $('tbody').html(data);
            }
        });
    })
</script>

Ini ialah kod untuk bar carian dalam php Blade

<div class="col-sm-5">
                        <input type="text"  class="form-control" id="search" name="search" placeholder="Search..."/>
                    </div>

Sebelum mencari:

Selepas mencari:

P粉043470158P粉043470158210 hari yang lalu263

membalas semua(1)saya akan balas

  • P粉551084295

    P粉5510842952024-02-27 00:41:54

    Sial, saya baru tahu apa yang menyebabkan masalah ini. Ini agak mengarut. Kod asal ada di sini: https://onecompiler.com/posts/3xy39rm78/php-blade-for-staff, ralat masih wujud. Masalahnya ialah, saya menambah tag tambahan yang tidak perlu. Output diletakkan di tempat berlabel, sama seperti skrip:

    $('#search').on('keyup',function(){
            $value = $(this).val();
            $qString = getQueryParams('module', window.location.href);
            $queryString = 
            $.ajax({
                type : 'get',
                url  : '{{URL::to('search')}}',
                data : {'search':$value, 'module_code': $qString},
                // data : {'search':$value},
                success:function (data) {
                    //console.log(data);
                    // alert(data);
                    $('tbody').html(data);
                }
            });
        })

    Pada titik terakhir kod, ia memberitahu html untuk mencetak hasil pada tag (saya tidak pasti sama ada ini betul). Dengan mengalih keluar tag tbody yang dilampirkan, masalah itu telah diselesaikan.

    balas
    0
  • Batalbalas