как отправить форму методом GET используя js - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь передать значения в URL через js, но получаю ошибку ниже

Uncaught RangeError: Maximum call stack size exceeded
    at String.replace (<anonymous>)

Javascript

$(document).on('submit','#adminProductFilter',function () {
            var category_id = $('#category').val();
            var prdouct_name = $('#productName').val();
            var link = '{{url('/admin/products?:id')}}';
            var url = link.replace(':id',"categories_id="+category_id+"&product="+prdouct_name);
            $(this).attr('action',url);
            $('#adminProductFilter').submit();
        });

Форма.php

<form class="form-inline form-validate" enctype="multipart/form-data" id="adminProductFilter">
                        {{csrf_field()}}
                      <div class="form-group">
                        <h5 style="font-weight: bold; padding:0px 5px; ">{{ trans('labels.FilterByCategory/Products') }}:</h5>
                      </div>
                      <div class="form-group" style="min-width: 220px">
                        <select class="form-control" name="categories_id" style="width: 100%" id="category">
                            <option value="">{{ trans('labels.SelectCategory') }}</option>
                            @foreach ($results['subCategories'] as  $key=>$subCategories)
                                <option value="{{ $subCategories->id }}"
                                    @if(isset($_REQUEST['categories_id']) and !empty($_REQUEST['categories_id']))
                                        @if( $subCategories->id == $_REQUEST['categories_id'])
                                            selected
                                        @endif
                                    @endif
                                >{{ $subCategories->name }}</option>
                            @endforeach
                        </select>
                      </div>
                      <div class="form-group">
                        <input type="text" name="product" class="form-control" id="productName"
                            @if(isset($_REQUEST['product']) and !empty($_REQUEST['product']))
                                value="{{ $_REQUEST['product'] }}"
                            @endif
                         placeholder="Products">
                      </div>
                      <button type="submit" class="btn btn-success">{{ trans('labels.Search') }}</button>
                      <a href="{{ URL::to('admin/products')}}" class="btn btn-danger">{{ trans('labels.ClearSearch') }}</a>
                    </form>

Route.php

Route::get('/products', 'AdminMasterProductsController@products');

Когда я нажимаю кнопку "Отправить", в действии формы отображается URL, но форма не получаетсяотправлено.

Я просто хотел отправить форму и получить результат.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 12 июня 2019

Вы можете изменить атрибут кнопки «Отправить» на «кнопку», присвоив ей идентификатор.

<form class="form-inline form-validate" enctype="multipart/form-data" id="adminProductFilter">
                        {{csrf_field()}}
                      <div class="form-group">
                        <h5 style="font-weight: bold; padding:0px 5px; ">{{ trans('labels.FilterByCategory/Products') }}:</h5>
                      </div>
                      <div class="form-group" style="min-width: 220px">
                        <select class="form-control" name="categories_id" style="width: 100%" id="category">
                            <option value="">{{ trans('labels.SelectCategory') }}</option>
                            @foreach ($results['subCategories'] as  $key=>$subCategories)
                                <option value="{{ $subCategories->id }}"
                                    @if(isset($_REQUEST['categories_id']) and !empty($_REQUEST['categories_id']))
                                        @if( $subCategories->id == $_REQUEST['categories_id'])
                                            selected
                                        @endif
                                    @endif
                                >{{ $subCategories->name }}</option>
                            @endforeach
                        </select>
                      </div>
                      <div class="form-group">
                        <input type="text" name="product" class="form-control" id="productName"
                            @if(isset($_REQUEST['product']) and !empty($_REQUEST['product']))
                                value="{{ $_REQUEST['product'] }}"
                            @endif
                         placeholder="Products">
                      </div>
                      <button type="button" id='btn-submit' class="btn btn-success">{{ trans('labels.Search') }}</button>
                      <a href="{{ URL::to('admin/products')}}" class="btn btn-danger">{{ trans('labels.ClearSearch') }}</a>
                    </form>

И отправьте через событие click.

$("#btn-submit").click(function(){
         var category_id = $('#category').val();
            var prdouct_name = $('#productName').val();
            var link = '{{url('/admin/products?:id')}}';
            var url = link.replace(':id',"categories_id="+category_id+"&product="+prdouct_name);
            $("#adminProductFilter").attr('action',url);
            $('#adminProductFilter').submit();
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...