Запись с возможностью удаления данных с подсластителем не работает - PullRequest
0 голосов
/ 05 июля 2019

Я пишу скрипт crm.Но у меня есть проблема.Клиенты находятся в базе данных.Я хочу удалить с подтверждением из базы данных и данных.Я пишу несколько кодов.И положить в foreach.Но коды работают только на странице 1. Как я могу это исправить?

Моя кнопка для ввода данных:

<form id="mulksilme-<?php echo $mulkid; ?>" method="POST">
    <input type="text" style="display: none;" name="mulkklavus" value="<?php echo $mulkid; ?>">
    <button id="sa-warning" type="submit" class="btn btn-info">
        <i class="ti-trash"> </i>
    </button>
</form>

Мой JavaScript (этот код генерирует для каждой строки):

$('#myTable').dataTable({
    "drawCallback": function (settings) {
        $("#mulksilme-<?php echo $mulkid; ?>").on("submit", function (e) {
            e.preventDefault();
            Swal.fire({
                title: 'Emin Misiniz?',
                text: "Mülk sonsuza dek silinecektir!",
                type: 'warning',
                showCancelButton: true,
                confirmButtonColor: '#3085d6',
                cancelButtonColor: '#d33',
                confirmButtonText: 'Evet, silinsin!',
                cancelButtonText: 'Hayır, vazgeç!'
            }).then((result) => {
                    if (result.value) {
                        $.ajax({
                            url: "sil.php",
                            type: "POST",
                            data: new FormData(this),
                            contentType: false,
                            processData: false,

                        })
                        location.reload();
                    }
                }
            )
        });
    }
});

1 Ответ

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

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

Пример

<table id="data-table" class="table table-striped table-bordered dt-responsive nowrap dataTable no-footer dtr-inline collapsed">
    <thead>
    <tr>
        <th>Username</th>
        <th>E-Mail/th>
        <th>First name</th>
        <th>Last name/th>
        <th>Role</th>
        <th>Enabled</th>
        <th>Created at</th>
        <th>Action</th>
    </tr>
    <tfoot></tfoot>
</table>
const table = $('#data-table').DataTable({
    'processing': true,
    'serverSide': true,
    'language': {
        'url': __('js/datatable-english.json')
    },
    'ajax': {
        'url': 'users/list',
        'type': 'POST'
    },
    'columns': [
        {'data': 'username'},
        {'data': 'email'},
        {'data': 'first_name'},
        {'data': 'last_name'},
        {'data': 'role'},
        {'data': 'enabled'},
        {'data': 'created_at'},
        {
            'orderable': false,
            'searchable': false,
            'data': null,
            'render': function (data, type, row, meta) {
                return '<button type="button" class="btn btn-info">Edit</button>';
            }
        }
    ],
});

$('#data-table tbody').on('click', 'button', table, function () {
    const data = table.row($(this).parents('tr')).data();
    //alert('Edit user: ' + data.id);

    Swal.fire({
        title: 'Emin Misiniz?',
        text: "Mülk sonsuza dek silinecektir!",
        type: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#3085d6',
        cancelButtonColor: '#d33',
        confirmButtonText: 'Evet, silinsin!',
        cancelButtonText: 'Hayır, vazgeç!'
    }).then(function (result) {
            if (result.value) {
                $.ajax({
                    url: "sil.php",
                    type: "POST",
                    contentType: 'application/json',
                    dataType: 'json',
                    data: JSON.stringify(data)
                }).done(function (result) {
                    alert('done');
                    //location.reload();
                });
            }
        }
    )
});
...