Laravel / Ajax中的动态选择输入

时间:2019-01-09 16:56:18

标签: php ajax laravel laravel-5.7 laravel-controller

为什么我无法收到Ajax请求?我有一个带有create()方法的ProductController。

public function create(Request $request)
{
    $value = $request->get('keyname') ? $request->get('keyname') : 1;
    $companies = Company::all();
    $categories = Company::find($value)->categories;

    return view('admin.pages.createProduct', compact('categories', 'companies'));
}

我有两个选择输入:第一个是公司列表,第二个是取决于公司选择的类别,因为每个公司都有不同的类别。

Ajax请求

$(document).ready(function () {
    $("#company").change(function () {
        var select = $('#company').find(":selected").val();
        $.ajax({
            url: "{{ route('product.create') }}",
            method: 'PUT',
            dataType: 'text',
            data: {
                keyname: select,
                _token: '{{csrf_token()}}'
            }, success: function (response) {
                console.log(select);
            }
        });
    });
});

但是,$request->get('keyname')没有获得select的值。

1 个答案:

答案 0 :(得分:0)

在您的控制器存储方法中尝试

public function store(Request $request)
{

    $value = $request->get('keyname')?$request->get('keyname'):1;

    $companies = Company::all();

    $categories = Company::find($value)->categories;

    return view('admin.pages.createProduct',compact('categories','companies'));
}

在您的ajax方法中,

       $(document).ready(function() {
            $("#company").change(function(){
                // var select =  $('#company').find(":selected").val();
                var select = $('#company :selected').val();
                $.ajax({
                    url: '{{ route("product.store") }}',
                    type: 'POST',
                    data: {
                        keyname: select,
                        _token: '{{csrf_token()}}'
                    }, success: function (response) {
                        console.log(select);
                    }
                });
            });
        });