AJAX Опубликовать дважды в Laravel рамках - PullRequest
0 голосов
/ 08 января 2020

Я искал в стеке потока с тем же названием, но мне не повезло ... это мой ajax скрипт

$.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('input[name="_token"]').val()
        }
    });

    $('#btn-submit').on('click', function(e)
    {
        e.preventDefault();
        var nama_kelompok_jalan = $('input[name="nama"]').val();
        var action = $('#csrf-token').attr('action');
        $.ajax({
            type:'POST',
            url:action,
            data:{nama:nama_kelompok_jalan},
            success:function(data){
                alert(data.success);
                location.reload();
            },
            error: function () {
                alert('Tidak ada pelanggan yang dipilih');
            }
         });
    });

здесь мой контроллер

public function store(Request $request)
    {
        $name    = $request->nama;
        $nometer = $request->nometer;

        $kelompok       = new Kelompok;
        $kelompok->nama = $name;
        $kelompok->save();
        return response()->json(['success'=>'Data Kelompok telah tersimpah..']);
    }

и это мой клинок

              <input type="hidden" action="{{route('kelompok.store')}}" name="_token" id="csrf-token" value="{{ Session::token() }}" />
                <div class="kt-portlet__body">

                    {{-- <div class="form-group form-group-last">
                        <div class="alert alert-secondary" role="alert">
                            <div class="alert-icon"><i class="flaticon-warning kt-font-brand"></i></div>
                            <div class="alert-text">
                                The example form below demonstrates common HTML form elements that receive updated styles from Bootstrap with additional classes.
                            </div>
                        </div>
                    </div> --}}
                    <div class="form-group">
                        <label>Nama Kelompok</label>
                        {{Form::text('nama', '', ['min'=>'1','max'=>'30','class'=>'form-control','placeholder'=>'E.g: Juanda','required'])}}
                    </div>
                </div>
                <div class="kt-portlet__foot">
                    <div class="kt-form__actions">
                        <button id="btn-submit" type="btn" class="btn btn-primary">Submit</button>
                        <button type="reset" class="btn btn-secondary">Cancel</button>
                    </div>
                </div>

        </div>

, то есть я не использую форму laravel, чтобы избежать двойной записи от laravel и ajax, но я все еще получил двойную запись, я пытаюсь проверить элемент в разделе сети мой скрипт загрузить только один, а не дважды, я пытаюсь получить данные отклика console.log от контроллера только один раз, но в mysql я получил две новые данные вставки с тем же значением ... любое предложение для меня ??, спасибо ...

еще одна загадка .. в моей среде разработки на моем ноутбуке работает нормально, это на сервере с производственной средой, оба имеют php 7.3 с одинаковой конфигурацией на php .ini

Ответы [ 3 ]

0 голосов
/ 08 января 2020

Есть пара изменений, которые необходимо внести

<button id="btn-submit" type="btn" class="btn btn-primary" onClick="submitForm()">Submit</button>

А затем в ваш javascript

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('input[name="_token"]').val()
    }
});

function submitForm() {

    var nama_kelompok_jalan = $('input[name="nama"]').val();
    var action = $('#csrf-token').attr('action');
    $.ajax({
        type: 'POST',
        url: action,
        data: {
            nama: nama_kelompok_jalan
        },
        success: function (data) {
            alert(data.success);
            location.reload();
        },
        error: function () {
            alert('Tidak ada pelanggan yang dipilih');
        }
    });


}
0 голосов
/ 08 января 2020

Я решил мою проблему с удалением этого location.reload ();

Я не знаю почему ... ахахаха, спасибо всем ..

0 голосов
/ 08 января 2020

Часть type="btn" недействительна. Вы должны попробовать с type="button". Вероятно, из-за неверного типа кнопки кнопка интерпретируется как кнопка отправки.

Код должен быть

<button id="btn-submit" type="button" class="btn btn-primary">Submit</button>

Возможно, вы смешали его с классами Bootstrap.

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