JQuery поиск только поиск по странице его на - PullRequest
0 голосов
/ 28 августа 2018

У меня есть данные laravel, которые разбиты на страницы с использованием paginator по умолчанию для laravels, вот так.

Контроллер

$applications = Application::onlyTrashed()->latest()->paginate(25);
return view('index', compact('applications'));

Таблица шаблонов моего клинка такая

<label for="kwd_search">Search:</label> <input type="text" id="kwd_search" value=""/>
<table class="table table-striped table-bordered table-hover" id="my-table1">
    <thead>
        <tr class="header">
            <th>{{ trans('crud.users.id') }}</th>
            <th>{{ trans('Name') }}</th>
            <th>{{ trans('Email') }}</th>
            <th>{{ trans('Country') }}</th>
            <th>{{ trans('Contact No') }}</th>
            <th>{{ trans('counsellor') }}</th>
            <th>{{ trans('Submitted On') }}</th>
            <th>{{ trans('Status') }}</th>
            <th>{{ trans('crud.actions') }}</th>
        </tr>
    </thead>
    <tbody>
        @foreach ($archivedApplications as $row)
        <tr>
            <td>{!! $row->id !!}</td>
            <td>{!! $row->name ?: 'No Name Provided'!!}</td>
            <td>{!! $row->email !!}</td>
            <td>{!! $row->country['name'] ?: 'No Country Provided' !!}</td>
            <td>{!! $row->contact_no ?: 'No Number Provided' !!}</td>
            <td>{!! ((isset($row->counsellor->name))?$row->counsellor->name:'') !!}</td>
            <td>{!! $row->created_at !!}</td>

            <!-- additional td -->
            <td>
                <span class="blockify-button btn-warning">{!! trans('Archived') !!}</span>
            </td>
        </tr>
        @endforeach
    </tbody>
</table>

Ниже приведен мой JS для поиска. В настоящее время он ищет только текущую страницу, а не только ту, на которой я сейчас нахожусь.

<script>
$(document).ready(function(){
    // Write on keyup event of keyword input element
    $("#kwd_search").keyup(function(){
        // When value of the input is not blank
        var term=$(this).val()
        if( term != "")
        {
            // Show only matching TR, hide rest of them
            $("#my-table1 tbody>tr").hide();
            $("#my-table1 td").filter(function(){
                   return $(this).text().toLowerCase().indexOf(term ) >-1
            }).parent("tr").show();
        }
        else
        {
            // When there is no input or clean again, show everything back
            $("#my-table1 tbody>tr").show();
        }
    });
});

</script>

1 Ответ

0 голосов
/ 28 августа 2018

Не уверен, в чем разница между "текущей" страницей и "той, на которой я работаю", но если вы хотите отфильтровать не только визуализированную таблицу, но и всю базу данных, вы должны отправить ajax-запрос с содержимым #kwd_search, сделайте sql запросить его и получить список результатов. Вероятно, лучшее решение - получить весь список из БД через ajax при загрузке страницы, разделить его и визуализировать таблицу с помощью js framework. В этом случае вы можете работать с целыми данными без ненужных запросов AJAX.

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