Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel与Ajax multiselect复选框的关系_Php_Jquery_Ajax_Laravel_Where In - Fatal编程技术网

Php Laravel与Ajax multiselect复选框的关系

Php Laravel与Ajax multiselect复选框的关系,php,jquery,ajax,laravel,where-in,Php,Jquery,Ajax,Laravel,Where In,我有一个多选复选框,我使用它来识别复选框,并使用AJAX Get将这些值传递给Laravel控制器 当我将Ajax数据传递给控制器时,json只返回一个集合。具体来说,它只返回传递字符串中的第一个值。所以如果我在复选框中选择1,2,4,8。它正在返回类别为\u id=1的项目。如果我选择2,9,10,它只返回类别为2的项目。为了检查输入是否正确,我将输入传递给view,并传递给console.log,后者总是说输入是正确的 我可以检索所有项目,但当我使用where并传递数据时,它只获取传递数组中

我有一个多选复选框,我使用它来识别复选框,并使用AJAX Get将这些值传递给Laravel控制器

当我将Ajax数据传递给控制器时,json只返回一个集合。具体来说,它只返回传递字符串中的第一个值。所以如果我在复选框中选择1,2,4,8。它正在返回类别为\u id=1的项目。如果我选择2,9,10,它只返回类别为2的项目。为了检查输入是否正确,我将输入传递给view,并传递给console.log,后者总是说输入是正确的

我可以检索所有项目,但当我使用where并传递数据时,它只获取传递数组中第一个值的集合

我已尝试将其放入阵列并传递: 1将ajax数据传递给数组,然后使用内爆将其转换为字符串,并在数组中传递给 2将阵列直接传递到

我还附上了几个我尝试过但失败的问题

任何建议都会大有帮助

项目控制器

Ajax和Jquery选择器

get将生成的jQuery对象转换为真数组。 使用内置的Array.toString方法。 最好使用POST而不是GET。 将arrayInput::get'categories'更改为Input::get'categories'。
.地图和.像魅力一样工作!非常感谢。我主要关注php如何更改数据类型,而不是查询本身。
public function getPaginate(Request $request) {

$input  = array(Input::get('categories'));
//$input2 = array($input);
//$value = implode(',', $input);
$sql = [1,2];

$projects = \App\Project::whereIn('category_id' , $sql)->get(); //working 
//$projects = DB::table('projects')->whereIn('category_id', array($value))->get();
//$projects = DB::select("select * from categories INNER JOIN projects on categories.id = projects.category_id where category_id IN('$value')" );


//$projects = \App\Project::paginate(4);
$categories = \App\Category::all();


// $projects = DB::select('select * from categories INNER JOIN projects on categories.id = projects.category_id where category_id IN('.$products.')' );

   // changed for AJAX
   if(Request::ajax()) {


      $projects = \App\Project::whereIn('category_id' ,$input)->get();  //not working
    //$value = implode(',', $input);
    //return Response::json(View::make('layouts.projects',array('projects'=>$input))->render());

  return Response::json(array('projects' =>$projects,'input'=>$input));
    }

    return view('paginate', ['projects' =>$projects,'categories'=>$categories]);
}
  $(document).ready(function() {
            $('input[type="checkbox"]').on('change', function(event) {
                var checkboxValues = [];
                      $('input[type="checkbox"]:checked').each(function(index, elem) {
                    checkboxValues.push($(elem).val());

                });
                $('#myResponse').html(checkboxValues.join(','));
                categories = checkboxValues.join(',');
                getfilters();
            });
        });

        var getfilters = function () {
            $.ajax({
            type: 'GET',
            headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            },
            url: '{{URL::route('get.paginate')}}',
            data: {categories: categories},
            error: function(e) {
            console.log(e.responseText);
            },

            success: function (data) {
            console.log(data);
            $('#projects').html(data);

            }});
        };
var categories;
var getfilters = function () {
    $.ajax({
        type: 'POST',
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        url: '',
        data: {categories: categories},
        error: function(e) {
            console.log(e.responseText);
        },
        success: function (data) {
            console.log(data);
            $('#projects').html(data);
        }});
};

$(':checkbox').on('change', function(event) {
    event.preventDefault();
    categories = $("input:checkbox:checked").map(function(){
        return $(this).val();
    }).get(); // <----
    $('#myResponse').html(categories.toString()); // <---- 'one,two,three;
    getfilters();
});