gpt4 book ai didi

php - 在 Laravel 4 PHP 框架中搜索数据库中的表

转载 作者:行者123 更新时间:2023-11-30 00:53:18 24 4
gpt4 key购买 nike

我正在尝试在 Laravel 4 PHP 框架内的数据库中设置对表的搜索。我正在使用 jquery 来完成此任务。我有一个“艺术家”表,我试图允许用户进行搜索。我有一个模型“Artist.php”和一个 Controller “SearchController.php”,我用它来控制逻辑。最后,我有一个 View “search.blade.php”,我将其用作面向用户的文件。相关代码如下:

SearchController.php:

public function show_search() {

$limit = 10;

if(isset($_GET['mode']) && !empty($_GET['mode'])) {
switch($_GET['mode']) {
case 'autocomplete':
if(isset($_GET['keywords']) && !empty($_GET['keywords'])) {

$query = htmlspecialchars($_GET['keywords']);
$query = mysql_real_escape_string($query);

$results = Artist::search_artists($query);

$data = array();
$i = 0;
if(isset($results) && !empty($results)) {
foreach($results as $result) {
if (strlen(strstr($result->stage_name, 'artists')) == 0) {
if($i < $limit) {
$data[$i] = $result;
$i++;
}
}
}
}
exit;
}
break;
}
}
return View::make('search.search');
}

艺术家.php:

public static function search_artists($query) {
$search_artists = DB::table('artists')
->where('artists.stage_name', 'LIKE', $query)
->orderBy('created_at', 'DESC')
->get();

return $search_artists;
}

search.blade.php:

<input type="text" class="search" id="inputSearch" /><br /> 
<div id="divResult"></div>

<script type="text/javascript">
$(function(){
$(".search").keyup(function() {
var inputSearch = $(this).val();
var data = {mode : 'autocomplete', keywords : inputSearch};

if(inputSearch!='') {
$.ajax({
type: "GET",
url: "/search/search",
data: data,
cache: false,
success: function(html) {
console.log(html);
$("#divResult").html(html).show();
}
});
}
return false;
});
});
</script>

我用路线调用所有这些:

Route::get('/search/search', array('uses' => 'SearchController@show_search'));

当我运行这个程序并在搜索框中输入内容时,我在 javascript 控制台中看到它显示为:

event.returnValue is deprecated. Please use the standard event.preventDefault() instead. 

并且结果不会显示在搜索框下方。知道可能出了什么问题吗?感谢您的帮助。

最佳答案

JavaScript 警告是由您的 return false; 引起的。如果您需要它(对于 keyup 事件似乎没有必要,除非您想捕获 Enter 键),您应该执行以下操作:

$(".search").keyup(function(e) { 
e.preventDefault(); // prevent the default action of the event

我不熟悉 Laravel,但在我看来,您没有得到任何结果,因为您没有对 Controller 中的 $data 变量执行任何操作。

我猜你需要类似的东西:

return View::make('search.search', $data);

将变量传递到您的 View 。

关于php - 在 Laravel 4 PHP 框架中搜索数据库中的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20791401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com