在Laravel4PHP框架中搜索数据库中的表

在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;

我正在尝试在Laravel4PHP框架内设置数据库中的表搜索。我正在使用jquery来完成这项工作。我有一个表“艺术家”,我试图让用户搜索。我有一个模型“Artist.php”和一个控制器“SearchController.php”,我用它来控制逻辑。最后,我有一个视图“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');
    }  
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);