невозможно перенаправить записи на основе динамического адреса - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь связать кнопки редактирования, просмотра и удаления с записями.Но я не могу связать его с соответствующими маршрутами.

Прикрепленный образ того, что я пытаюсь разработать.

Add dynamic select dropdown

Файл блейда:

    <div class="container">
        {!!Form::open()!!}
        <div class="form-group">
            <label for=""> District</label>
            <select name="district_option" id="district_option" class="form-control">
                <option value="0" disabled="true" selected="true">------ Select District --------</option>
                @foreach ($districts as $key => $district)
                <option value="{{$district->id}}">{{$district->district_name}}</option>
                @endforeach
            </select>
        </div>
        <div class="form-group">
            <label for=""> Municipality</label>
            <select name="municipal_option" id="municipal_option" class="form-control">
                <option value="0" disabled="true" selected="true">------ Select District First--------</option>
            </select>
        </div>
<table class="table table-striped" >
    <thead>
        <tr> 

           <td> Bank Name</td>
        <td>Bank Acc No </td>
        <td>Bank IFSC Code</td>
        <td>Action</td>
        <td>Action</td>
        </tr>        
    </thead>
            <tbody id="bank_list">
                <tr> 
                        {{-- <td>1</td>
                        <td>1</td>
                        <td>1</td> --}}
                </tr>
            </tbody>
</table>
        {!!Form::close()!!}

        <div class="container">
            <h1 id="bank_name"></h1>
        </div>
    </div>


    @include('admin.includes.footer')
    <script>
            $('#district_option').on('change',function(e){
        console.log(e);
        var district_id = e.target.value;
        var BASEURL = "{!! url('admin/bank/') !!}";
        console.log(district_id);
        $.get( BASEURL + '/municipalview?district_id=' + district_id, function(data){
            console.log(data);
            $('#municipal_option').empty();
            $('#municipal_option').append('<option value="0" disabled="true" selected="true">------ Select District First--------</option>');
         $.each(data,function(index, municipalObj){
            $('#municipal_option').append('<option value="'+ municipalObj.id +'"> '+ municipalObj.municipal_name +' </option>');
               })
                });
                }); 


        $('#municipal_option').on('change',function(e){
        // console.log(e);  
        var municipal_id = e.target.value; 
        var BASEURL = "{!! url('admin/bank/') !!}";
        console.log(municipal_id);
        $.get( BASEURL + '/bankview?municipal_id=' + municipal_id, function(data){
            console.log(data);
            $("#bank_list tr").remove();
            $.each(data,function(index, bankObj){
                $('#bank_list').append('<tr class=""><td> ' + bankObj.bank_name + '</td> <td> ' + bankObj.bank_ac_no + ' </td>  <td> '+ bankObj.bank_ifsc_code +' </td> <td> <button class="btn btn-primary"> <a href="{!! url('bank/{{$bank->id}}/edit')!!}"> Edit </a>  </td> <td> </td>    </tr>');
            });

                });
                }); 


    </script>

Файл маршрута:

Route::resource('bank', 'bankController');
Route::get('admin/bank/municipalview/', 'bankController@municipalView');
Route::get('admin/bank/bankview/', 'bankController@bankView');

Файл контроллера:

    public function municipalView()
{ 

    $districts_id = Input::get('district_id');
    $municipalities = Municipality::where('district_id', '=', $districts_id )->get();
    return response()->json($municipalities) ;
}   

public function bankView(Request $request)
{

    $municipals_id = Input::get('municipal_id');
    $banks = Bank::where('municipal_id', '=', $municipals_id )->get();
    return response()->json($banks) ;
}  

URL-адрес в HREF элемента a вызывается как есть, и при загрузке идентификатор не извлекается, а вместо этого выполняется синтаксический анализ

http://localhost/public/bank/%3C?php%20echo%20e($bank-%3Eid);%20?%3E/edit

И чтобы удалить кнопку, я хотел бы передать это,

{!!Form::open(['action' => ['bankController@destroy', $bank->id], 'method' =>
                            'POST'])!!}
                            {{Form::hidden('_method', 'DELETE')}}
                            {{Form::submit('Delete', ['class' => 'btn btn-danger'])}}
                            {!!Form::close()!!}

Было бы это возможно

Пожалуйста, помогите мне в этом.Пожалуйста, предложите мне, если мой подход правильный, так как я новичок в разработке.

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Ответ на второй вопрос: преобразование коллектива формы в обычную форму - добавление кнопки «Удалить».

Чтобы сделать это по обычной ссылке, а не через AJAX или другой тип запроса формы, мы можем настроитьспециальный маршрут, который будет отвечать на обычный запрос GET:

В маршрутах определите это в дополнение к ресурсу:

Route::get('bank/{bank}/delete', 'bankController@delete');

Коллектив Form может быть переписан как

<form action="bank/'+ bankObj.id +'/delete"> <input type = "hidden" name = "_method" value = "DELETE"><input type="submit" class = "btn btn-danger"/></form>

Примечание: для дальнейшего использования !!

0 голосов
/ 11 декабря 2018

Поскольку вы пытаетесь распечатать маршрут действия из кода Javascript, он пытается напечатать код эхо-кода php напрямую, а не результат функции.

Вы должны сделать что-то вроде:

<a href="/your_route/' + bankObj.id + '">
...