Laravel - Ajax при поиске дублирует данные - PullRequest
0 голосов
/ 06 декабря 2018

Здравствуйте, когда я ищу в текстовом поле, данные дублируются, почему?

Вот мой код ajax.Пожалуйста, проверьте этот код, так как это проблема, почему он дублирует.Также, пожалуйста, убедитесь, что его синтаксис правильный.

$('#search').on('keyup',function(){
    $value=$(this).val();
    $.ajax({
        type : 'get',
        url  : '{{ URL::to('admin/employeemaintenance/search') }}',
        data : {'search':$value},
        success:function(data){
            $('tbody').html(data);
        }
    });
})

Мой контроллер

Пожалуйста, проверьте этот код, он может иметь некоторые проблемы, у меня могут быть огромные поля данных, а также кнопкикакие обновления и удаления до сих пор не включены:

    public function search(Request $request){
    if($request->ajax())
    {
        $output="";
        $employees = DB::table('employeefms')->where('last_name','LIKE','%'.$request->search.'%')
                                             ->orWhere('first_name','LIKE','%'.$request->search.'%')->get();


        if($employees)
        {
            foreach($employees as $key => $employee){
                if($employee->gender==0)
                {
                    $gender="Male";
                }
                else
                {
                    $gender="Female";
                }
            $output.='<tr>'.
                     '<td>'.$employee->employee_no.'</td>'.
                    '<td>'.$employee->last_name.'</td>'.
                    '<td>'.$employee->first_name.'</td>'.
                    '<td>'.$employee->middle_name.'</td>'.
                    '<td>'.$employee->nick_name.'</td>'.
                    '<td>'.$gender.'</td>'.
                    '<td>'.$employee->birthdate.'</td>'.
                    '<td>'.$employee->age.'</td>'.
                    '<td>'.$employee->birthplace.'</td>'.
                    '<td>'.$employee->province.'</td>'.
                    '<td>'.$employee->doMarriage.'</td>'.
                    '<td>'.$employee->height.'</td>'.
                    '<td>'.$employee->weight.'</td>'.
                    '<td>'.$employee->bloodtype.'</td>'.
                    '<td>'.$employee->nationality.'</td>'.
                    '<td>'.$employee->religion.'</td>'.
                    '<td>'.$employee->civil_stats.'</td>'.
                    '<td>'.$employee->sss_no.'</td>'.
                    '<td>'.$employee->tin_id.'</td>'.
                    '<td>'.$employee->phil_no.'</td>'.
                    '<td>'.$employee->pagibig_no.'</td>'.
                    '<td>'.$employee->address_no.'</td>'.
                    '<td>'.$employee->street_no.'</td>'.
                    '<td>'.$employee->brgy.'</td>'.
                    '<td>'.$employee->municipality.'</td>'.
                    '<td>'.$employee->cur_province.'</td>'.
                    '<td>'.$employee->region.'</td>'.
                    '<td>'.$employee->zipcode.'</td>'.
                    '<td>'.$employee->per_address_no.'</td>'.
                    '<td>'.$employee->per_street_no.'</td>'.
                    '<td>'.$employee->per_brgy.'</td>'.
                    '<td>'.$employee->per_municipality.'</td>'.
                    '<td>'.$employee->per_province.'</td>'.
                    '<td>'.$employee->per_region.'</td>'.
                    '<td>'.$employee->per_zipcode.'</td>'.
                    '<td>'.$employee->mobile_no.'</td>'.
                    '<td>'.$employee->tel_no.'</td>'.
                    '<td>'.$employee->email_ad.'</td>'.
                    '<td>'.$employee->guard_name.'</td>'.
                    '<td>'.$employee->guard_add.'</td>'.
                    '<td>'.$employee->guard_relat.'</td>'.
                    '<td>'.$employee->grd_mobile_no.'</td>'.
                    '<a href="/admin/employeemaintenance/'.$employee->id.'/edit" class="btn btn-primary btn-sm"><i class="fa fa-edit"></i>'.
                    '</tr>';
            }
            return Response($output);
        }
    }
}

текстовое поле поиска

<input type="text" name="search" id="search" class="form-control">

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018
public function search(Request $request){
if($request->ajax())
{

    $employees = DB::table('employeefms')->where('last_name','LIKE','%'.$request->search.'%')
                                         ->orWhere('first_name','LIKE','%'.$request->search.'%')->get();


    if(!empty($employees))
    {
        return json_encode(array("msg"=>"success", "data"=>$employees));
    }
     return json_encode(array("msg"=>"error"));
}

}

\\\\\\\\\ Ajax

 $.ajax({
        type : 'get',
        url  : '{{ URL::to('admin/employeemaintenance/search') }}',
        data : {'search':$value},
        success:function(data){
           var data1 = jQuery.parseJSON(data); 
           if(data1.msg == "success"){
                $.each(eval(data1.data), function(){
                      //html here
                    })
             },
             //no data found

        }
    });
0 голосов
/ 06 декабря 2018

Не помещайте html в контроллер laravel, вы можете вернуть $ employee в виде данных, а затем добавить html в ваше действие ajax success

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...