【问题标题】:Ajax Live search post to Laravel viewAjax Live 搜索帖子到 Laravel 视图
【发布时间】:2016-09-15 10:23:39
【问题描述】:

我正在从一个视图创建一个实时搜索,我想知道为什么我得到一个没有可用的响应数据,即使标题显示它在发布后发送数据。我的搜索栏在 templates/reports.blade.php 中:

           <div class="large-6 columns">
            <input type="text" id="search-input" onkeyup="searchup()" onkeydown="searchdown()" placeholder="Search Recipient"></div>
            <div id="search-results"></div>

js脚本是这样的:

var timer;
function searchup() {
 timer = setTimeout(function()
 {
    var keywords = $('#search-input').val();
    if (keywords.length > 0)
    {
        $.post('/reports/executeSearch', {keywords: keywords}, function(markup)
        {
            $('#search-results').html(markup);
        });
    }
 }, 500);
}

function searchdown()
{
    clearTimeout(timer);
}

我的路线是这样的:

    Route::group(['middleware' => ['web']], function () {
    Route::resource('reports', 'ReportsController');
    Route::post('reports/executeSearch', ['uses' => 'ReportsController@search']);
    });

虽然我的控制器是这样的:

public function index()
    {
        // get all the reports
        $reports = Reports::all();

        // load the view and pass the reports
        return View::make('templates.reports')
            ->with('reports', $reports);
    }

    public function search(Request $keyword)
    {
        $searchUsers = Recipients::where("name", "iLIKE", "%{$keyword->get('keywords')}%");
        return View::make('templates.searchUsers')->with('searchUsers', $searchUsers);

    }

如您所见,它将数据发送到 templates/searchUsers.blade.php,这是一个简单的循环:

@foreach($searchUsers as $key => $value)
    <b>{{ $value->name }}</b>
    <br>
@endforeach

但由于某种原因,它似乎没有附加到我的reports.blade.php 中。是不是直接通过js插入?

【问题讨论】:

  • 使用.fail() 进行错误处理。您的请求可能以非 200 状态返回。
  • 这是 200 OK 状态。这是什么意思?
  • 你能在开发者工具栏(chrome)或firefox中看到响应吗?
  • 在这里.. imgur.com/nyQSY6B
  • 我得到了 200 ok (imgur.com/j1Ei4mD) 并且“关键字”传递得很好。我只是不确定是否可以使用单独的刀片。

标签: javascript php jquery laravel


【解决方案1】:

我认为这是因为您没有使用 get() 从查询生成器中获取集合。

试试:

$searchUsers = Recipients::where("name", "iLIKE", "%{$keyword->get('keywords')}%")->get();

【讨论】:

  • 我忘了包括那个..感谢您的注意。 :)
猜你喜欢
  • 2023-03-24
  • 2013-02-13
  • 2019-12-18
  • 1970-01-01
  • 1970-01-01
  • 2015-04-07
  • 1970-01-01
  • 1970-01-01
  • 2015-10-31
相关资源
最近更新 更多