在Laravel4PHP框架中搜索数据库中的表
我正在尝试在Laravel4PHP框架内设置数据库中的表搜索。我正在使用jquery来完成这项工作。我有一个表“艺术家”,我试图让用户搜索。我有一个模型“Artist.php”和一个控制器“SearchController.php”,我用它来控制逻辑。最后,我有一个视图“search.blade.php”,我将其用作面向用户的文件。以下是相关代码: SearchController.php:在Laravel4PHP框架中搜索数据库中的表,php,jquery,mysql,laravel,laravel-4,Php,Jquery,Mysql,Laravel,Laravel 4,我正在尝试在Laravel4PHP框架内设置数据库中的表搜索。我正在使用jquery来完成这项工作。我有一个表“艺术家”,我试图让用户搜索。我有一个模型“Artist.php”和一个控制器“SearchController.php”,我用它来控制逻辑。最后,我有一个视图“search.blade.php”,我将其用作面向用户的文件。以下是相关代码: SearchController.php: public function show_search() { $limit = 10;
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');
}
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>
当我运行此命令并在搜索框中键入内容时,我会在javascript控制台中看到如下内容:
event.returnValue is deprecated. Please use the standard event.preventDefault() instead.
结果不会显示在搜索框下。知道会出什么问题吗?谢谢你的帮助 javascript警告是由您的
返回false引起的代码>。如果您需要它(对于keyup
事件似乎没有必要,除非您想要捕捉回车键),您应该执行以下操作:
$(".search").keyup(function(e) {
e.preventDefault(); // prevent the default action of the event
我不熟悉Laravel,但在我看来,您没有得到任何结果,因为您没有使用控制器中的$data
变量执行任何操作
我想你需要类似的东西:
return View::make('search.search', $data);
将变量传递给视图。hmm,我将返回值改为false;e.预防违约();它仍然给我这个错误,你能解释一下第二部分吗?我已经尝试使用以下命令显示数据:success:function(html){console.log(html);$(“#divResult”).html(html).show()}@user1072337是否已删除返回false代码>?关于视图,它应该在javascript中回显/输出您需要的内容,这将是您的html
变量(您的视图回显的所有内容);我还将控制器更改为:returnview::make('search.search',array('results'=>$data));现在它显示“undefined variable$data”@user1072337您需要将视图的return
语句放在退出之前代码>语句。你的观点到底是什么样的?
$(".search").keyup(function(e) {
e.preventDefault(); // prevent the default action of the event
return View::make('search.search', $data);