Как отправить данные, запрошенные ajax, обратно на контроллер? - PullRequest
0 голосов
/ 05 июня 2019

Я уже получил данные в ajax, а затем использовал этот jquery для добавления этих данных в шаблон блейда.

 <table class="table table-hover">
                        <thead>
                        </thead>
                        <tbody id="transRecords">

                        </tbody>
                    </table>


  $.ajax({
            url: '{{route('translation.recodes')}}',
            type: 'post',
            data: {
                _token: "{{ csrf_token() }}"
            },
            success: function (data) {
                data.forEach((rec) => {
                    document.querySelector('#transRecords').innerHTML +=
                        `
            <tr">
                <td id="recodeValue-${rec.id}" style="display:none">${rec.id}</td>
                <td>${rec.korean}</td>
                <td>${rec.japanese}</td>
                <td><button id="recodeRemoveBtn-${rec.id}" type="button" class="btn btn-danger float-right">삭제</button></td>
            </tr>

            `
                })

            },
            error: function () {
                alert("error!!!!");
            }
        });

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

 <td><button id="recodeRemoveBtn-${rec.id}" type="button" class="btn btn-danger float-right">삭제</button></td>

id="recodeRemoveBtn-${rec.id} Нажмите кнопку, чтобы отправить значение ${rec.id} на контроллер.

Это мой маршрутизатор.

Route::post('translation/delete', 'Home\TranslationController@recodeDelete')->name('translation.recode.delete')->middleware('auth');

Ответы [ 4 ]

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

Вы все еще можете сделать это таким образом с предупреждением JavaScript

<!-- your button click code-->
<button onclick="deletefunc('{{ $rec->id}}')" type="button" class="btn btn-danger float-right"></button></td>


<!-- javascript to get recordid when click on button-->
<script type="text/javascript">

function deletefunc(r)
    {
        document.href="https://www.example.com/delete"+r;
    }

</script>


//controller to delete record store in database
public function deleteRecord(){
                $recordid=$request->input('record');

                $delete=DB::table('your-table')->where('id',$recordid)->delete();

                return redirect('url')->with('message','Record deleted!');
   }

//route this time uses get with id parameter
Route::get('/delete/{id}','your-controller@deleteRecord');
0 голосов
/ 05 июня 2019
$(function() { 
   $.ajax({
        url: '{{route('translation.recodes')}}',
        type: 'post',
        data: {
            _token: "{{ csrf_token() }}"
        },
        success: function (data) {
            $.each(data,function(index, el) {
                var row = `<tr>
                    <td>`+el.korean+`</td>
                    <td>`+el.japanese+`</td>
                    <td><button onclick="removeTd(this,"`+el.id+`")" type="button" class="btn btn-danger float-right">삭제</button></td>
                </tr>`;
                $('#transRecords').append(row);
            });
        },
        error: function () {
            alert("error!!!!");
        }
    });
 });
    function removeTd(ele,id){
        var cnf = confirm('Are you sure to delete this entry..?');
        if(cnf){
            $.ajax({
                url: "{!! route('translation.recode.delete') !!}",
                type: "POST",
                data: {id:id},
                success: function(response){
                    if(response=="true")
                        alert('Delete Successfully');
                }
            });
            var m_id = $(ele).closest('tr').children().first().find('input:hidden').val();
            $(ele).closest('tr').remove();
        }
    }
0 голосов
/ 05 июня 2019

вы можете сделать это двумя способами; во-первых, используя модальные, а во-вторых, используя javascript alert. первый вариант - с использованием модального примера

<!-- modal to get record id store it in hidden field-->
<div id="getID" class="modal fade" >
        <div class="modal-dialog box box-default" role="document" style="color:black;font-size:12.5px;">
          <div class="modal-content">
            <div class="modal-header">
              <p class="modal-title">Delete record?</p>
              <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                <span aria-hidden="true">&times;</span>
              </button>
            </div>
            <form class="form-horizontal" action="{{ url('/delete/') }}" method="post"  role="form">
                    {{ csrf_field() }}
            <div class="modal-body">  

                <div class="form-group" style="margin: 0 10px;">
                    Do you want to delete?
                <input type="hidden" class="form-control" id="recordid" name="record" value="">

                </div>
            </div>
                <div class="modal-footer">
                    <button type="submit" class="btn btn-primary btn-xs">Yes</button>
                    <button type="button" class="btn btn-danger btn-xs" data-dismiss="modal">No</button>
                </div>

                </form>
            </div>

          </div>
        </div>

<!-- your button click code-->
<button onclick="deletefunc('{{ $rec->id}}')" type="button" class="btn btn-danger float-right"></button></td>


<!-- javascript to get recordid when click on button-->
<script type="text/javascript">

function deletefunc(r)
    {
        document.getElementById('recordid').value = r;

        $("#getID").modal('show')
    }

</script>

//controller to delete record store in database
public function deleteRecord(Request $request){

                  $this->validate($request, [

                  'record' => 'required|string',

                ]);

                $recordid=$request->input('record');

                $delete=DB::table('your-table')->where('id',$recordid)->delete();

                return redirect('url')->with('message','Record deleted!');


   }



//route

    Route::post('/delete','your-controller@deleteRecord');
0 голосов
/ 05 июня 2019

Привет, пожалуйста, используйте функцию onclick в кнопке.


<td><button id="recodeRemoveBtn-${rec.id}" onclick="sendData(rec.id)" type="button" class="btn btn-danger float-right">삭제</button></td>
<script>
function sendData(id) {
    // you got current id
    // and run ajax
}
</script>

надеюсь, что это полезно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...