在laravel中的自动完成中找不到404

时间:2016-05-17 14:33:43

标签: laravel jquery-ui autocomplete laravel-5.2

所以我试图在我的laravel 5.2应用程序中使用jquery ui实现一个简单的自动完成。但是我收到以下错误:

enter image description here

这是输入字段:

<input id="participants" name="participants" type="text">

我的javascript

$("#participants").autocomplete({
    source: "/user/get-users-json",
    minLength: 1
});

我的路线:

Route::get('user/get-users-json', 'UsersController@getUsersJson');

我的getUsersJson方法:

public function getUsersJson() {

$term = strtolower(Input::get('participants'));

$data = array('John', 'James', 'Henry', 'Graham', 'Mitthew', 'Rick', 'Tom');

$return_array = array();

foreach ($data as $value) {
    if (strpos(strtolower($value), $term) !== false) {
        $return_array[] = array('value' => $value);
    }
}
return response()->json($return_array);
}
}

当我将表单提交给/ user / get-users-json时,它完美地工作并将我需要的JSON打印到网页,但自动完成本身并不起作用,我不知道为什么。

有什么建议吗?提前谢谢。

3 个答案:

答案 0 :(得分:1)

由于您尝试访问网址user/get-users-json,浏览器认为您要在当前目录中执行此操作。您可以在错误中看到它尝试到达/event/user/get-users-json而不是您想要的那个。

在开头用斜杠将其更改为source: "/user/get-users-json",,告诉浏览器将路由附加到基地。这应该足以让它发挥作用。

答案 1 :(得分:1)

我认为你的JavaScript函数中有拼写错误

DECLARE
      @txt NVARCHAR(MAX)
    , @name NVARCHAR(60)
    , @email VARCHAR(100)

DECLARE cur CURSOR FAST_FORWARD READ_ONLY LOCAL FOR
    SELECT 'Your old user id: ' + CAST(oldUserID AS NVARCHAR(100)) 
         + ', your new user id: ' + CAST(newUserID AS NVARCHAR(100)), name, email
    FROM ...

OPEN cur

FETCH NEXT FROM cur INTO @txt, @name, @email

    WHILE @@fetch_status = 0
    BEGIN

        EXEC msdb.dbo.sp_send_dbmail @profile_name = ...
                                   , @recipients = @email
                                   , @subject = @name
                                   , @body = @txt
                                   , @body_format = 'HTML'

    FETCH NEXT FROM cur INTO @txt, @name, @email

    END

CLOSE cur
DEALLOCATE cur

希望它有效

答案 2 :(得分:1)

问题是由jquery ui发送的GET参数是&#34; term&#34;而不是&#34;参与者&#34;。所以我改变了getUsersJson方法

$term = strtolower(Input::get('participants'));

$term = strtolower(Input::get('term'));

它有效!