【问题标题】:jQuery TokenInput not working (displaying search results ) with laraveljQuery TokenInput 在 laravel 中不起作用(显示搜索结果)
【发布时间】:2015-02-27 06:09:42
【问题描述】:

这是我在页面中使用的 javascript 代码。

<script>
    $(document).ready(function() {
        $("#tokenfield").tokenInput("localhost/inkrasa3/public/hashes",
            {theme:"facebook",tokenLimit:5,preventDuplicates:true,tokenValue:"name"});
    });
</script>

这是路由文件。

Route::get('hashes',function(){
return "[{id: 1, name:\"hello\"},{id:2, name:\"sup\"}]";
});

我做错了什么?它非常适合硬编码数组或刀片打印的 Json 数组。
我什至试过这个:

$(document).ready(function() { $("#tokenfield").tokenInput("localhost/inkrasa3/public/hashes", {theme:"facebook",tokenLimit:5,preventDuplicates:true,tokenValue:"name",method:"post"}); });

与路线:

`Route::post('hashes',function(){
$names[] = array('id' => 0, 'name' => 'hello');
$names[] = array('id' => 1, 'name' => 'sup');

return Response::json($names);

});` 当我查看浏览器开发工具时,这两次都出现 404 错误。

【问题讨论】:

  • 当我从浏览器中的选项卡发送相同的网址时,一切正常。但是搜索栏出现 404 错误。希望这些信息对您有所帮助。

标签: php laravel jquery-tokeninput


【解决方案1】:

您的响应应该是“application/json”类型。

Laravel 4 尝试以下代码:

Route::get('hashes', function()
{
    $names[] = array('id' => 0, 'name' => 'hello');
    $names[] = array('id' => 1, 'name' => 'sup');

    return Response::json($names);
});

对于 Laravel 5,将 return 语句替换为:

return response()-&gt;json($names);

动态响应示例 (Laravel 4)

Route::get('hashes', function()
{
    // submitted letters from TokenInput
    $letters = Input::get('q');

    // search in the column "name"
    $users = User::where('name', 'LIKE', '%' . $letters . '%')->get();

    return Response::json($users->toArray());
});

当然是用户表 :)

+----+--------------+
| id | name         |
+----+--------------+
|  1 | Peter        |
|  2 | Andy         |
|  3 | Walter       |
|  4 | ...          |
+----+--------------+

【讨论】:

  • 建议框发送类型为:/mainurl?q=typed_letters 的请求 url。我需要为此更改路线吗?
  • TokenInput 的默认行为是 GET,所以请使用Route::get(); 在路由功能中,您可以使用$letters = Input::get('q'); 访问键入的字母我已经用一个示例更新了我的答案...
  • 非常感谢。有效。我做错的是在 javascript 中编写整个 url,而 laravel 将其附加到基本 url。所以我得到了404错误。它所需要的只是与路由相同的 url。
  • 不客气!您是否使用 Firebug 之类的工具或类似的工具来跟踪 ajax 请求?
  • 只是firefox自带的inspector。我从那里发现了我的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多