所以我试图在我的laravel 5.2应用程序中使用jquery ui实现一个简单的自动完成。但是我收到以下错误:
这是输入字段:
<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打印到网页,但自动完成本身并不起作用,我不知道为什么。
有什么建议吗?提前谢谢。
答案 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'));
它有效!