【问题标题】:Selectize dropdown not loading from database选择下拉菜单不从数据库加载
【发布时间】:2014-05-05 02:13:50
【问题描述】:

我参考了http://maxoffsky.com/code-blog/laravel-shop-tutorial-3-implementing-smart-search/ 在我的 laravel 应用程序中实现搜索功能

当我使用来自http://brianreavis.github.io/selectize.js/ 的远程源的 javascript 示例代码时,它工作得非常好。但是当我使用它从我自己的控制器方法加载数据时,它不会填充选择菜单中的项目。

这是我的控制器方法

public function index(){

$query = e(Input::get('q',''));

if(!$query && $query == '') return Response::json(array(), 400);

$products = User::where('firstname','like','%'.$query.'%')
  ->orderBy('firstname','asc')
  ->take(5)
  ->get(array('talent','firstname','profilepic','username'))->toArray();

$categories = User::where('talent','like','%'.$query.'%')
  ->take(5)
  ->get(array('talent', 'firstname','username'))
  ->toArray();


// Merge all data into one array
$data = array_merge($products, $categories);

    return Response::json(array(
    'data'=>$data
  ));
 }

我已经使用以下代码初始化了我的选择

 $(document).ready(function(){



        $('#searchbox').selectize({    
        valueField: 'name',
        labelField: 'firstname',
        searchField: 'firstname',
        options: [],
        render: {
                option: function(item, escape) {
                    return '<div>hello</div>';
                }
            },
        load: function(query, callback) {
                if (!query.length) return callback();
                $.ajax({
                    url: root + '/search',
                    type: 'GET',
                    dataType: 'json',
                    data: {
                        q: query
                    },
                    error: function() {
                        callback();
                    },
                    success: function(res) {
                        callback(res.data);
                    }
                });
            },
            onChange: function(){
                window.location = this.items[0];
            }
         create: false
           });
         });

我无法弄清楚我错过了什么

【问题讨论】:

    标签: php ajax laravel selectize.js


    【解决方案1】:

    我会考虑在您查询正常工作的示例远程服务时比较数据的样子,然后比较从控制器检索数据时的数据样子。我怀疑这可以很容易地看到你的数据出现的格式有什么不同,以及需要采取哪些步骤来改变它。如果您仍然卡住,您可以从此处发布生成的 json,我可能会为您提供进一步的指导,以使您的与他们的一致。

    【讨论】:

    • 我尝试检查两个响应,我只是成功添加了一个警报:上面的 function(res){},我发现将它与我的代码一起使用不会产生任何 json 响应
    • 那么也许用 dd($data) 调用替换您的 Return::json 调用,它只会打印出 $data 的内容;确保您的数据本身正在正确构建。
    • 同样在你的控制器函数的开始你返回一个空白数组,也许这就是正在发生的事情。也许您应该检查该声明没有问题。也许你只是想让它说 if ($query != "").. 我也没有看到通过 e() 函数传递输入的意义。
    猜你喜欢
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    相关资源
    最近更新 更多