как удалить БД с помощью метода Arry String DELETE?

#javascript #jquery #sql #extjs

#javascript #jquery #sql #extjs

Вопрос:

меня пытаются удалить данные из моей БД с помощью ext.js сценарий ниже: кажется, он работает в браузере, когда я нажимаю на значок «Удалить», но когда я нажимаю на какую-то другую панель инструментов, коснитесь какой-либо страницы браузера. он был перезагружен с моими же данными в сетке строк. Я действительно не знаю, что я удаляю только массив, но не удаляю фактическую БД, отправляя неправильные серверы или методы. Я не знаю. Я попытался использовать другой метод для его удаления, но вернулась та же проблема.

Кто-нибудь может мне помочь? Я новичок в ext.javascript или ext.Ajax … и т.д..

коды:

 var userHistoryGrid = Ext.create('Ext.grid.Panel', {
    width: 880,
    height: 450, //autoHeight: true, collapsible: false, title: 'Employee's Request History', icon: 'images/newtodo1.png', store: userHistoryStore, multiSelect: false, columnLines: false, enableColumnHide: false, enableColumnMove: false, enableColumnResize: false, selType: 'rowmodel',

    viewConfig: {
        emptyText: 'No prior requests',
        stripeRows: false,
        enableTextSelection: true,

        getRowClass: function (record) {
            return record.get('Status') == 'Approved' ? 'normal-row' : 'hilite-row';
        }
    },

    items: [{
        icon: 'images/delete.png',
        tooltip: 'Delete Request',
        handler: function (grid, rowIndex, colIndex) {
            record = grid.getStore().getAt(rowIndex);
            cellvalue = record.get('Delete');

            if (cellvalue != 'Delete') {
                Ext.MessageBox.confirm(
                    'Confirm Deletion',
                    'Delete this request?',

                function (btn) {
                    if (btn == 'yes') {

                        cellvalue = record.get('EventID');

                        Ext.Ajax.request({
                            url: 'delUserHistoryGrid.asp',
                            async: false,
                            method: 'DELETE',
                            params: {
                                id: userHistoryStore
                            },
                            timeout: 30000,
                            success: function (result) {
                                userHistoryStore.reload();
                                userinfoStore.reload();
                            }
                        });

                        //delete userHistoryStore[rowIndex];
                        userHistoryStore.removeAt(rowIndex);
                        //eventStore.destroy(rowIndex);
                        //userHistoryStore.destroy(rowIndex);
                        //record.EventID.removeAt(grid);
                        userinfoStore.reload();
                    } else {
                        rowEditing.cancelEdit();
                    }
                });
            }
        }
    },
  

Ответ №1:

Несколько советов, которые помогут вам точно определить проблему:

  1. Не удаляйте запись из хранилища после вызова ajax. Делайте это только в том случае, если это было успешно. Переместитесь userHistoryStore.removeAt(rowIndex); внутрь успешного обратного вызова. Я не думаю async: false , что на самом деле существует. Таким образом, ваш вызов ajax возвращается немедленно. Вы должны продолжить поток выполнения в обратном вызове.

  2. Добавьте failure обратный вызов и проверьте (точку останова или журнал) полученный ответ. Вы также должны проверить ответ в success случае, так как там тоже может быть какое-то интересное сообщение. Зависит от сервиса.

  3. Используйте инструменты разработчика вашего браузера и проверьте сеть. Сначала вы должны убедиться, что вызов ajax выполнен успешно, а затем вы получите правильный ответ. Проверьте код ответа. Если это не в 200-х годах, это ошибка. Вы можете выполнить поиск в Интернете еще раз, как только увидите полученный код ответа.

  4. Ничего не зная о ваших сервисах или вашем приложении, я думаю, что передача всего хранилища в качестве вашего id параметра, вероятно, неверна. Разве вы не должны передавать cellvalue ?

Комментарии:

1. Спасибо. Сначала я попытаюсь проверить веб, а затем добавлю ваши предложения в свой код и протестирую его. Надеюсь, это сработает. Я очень ценю вашу помощь.