Как исправить оператор INSERT, конфликтующий с ограничением внешнего ключа, когда я вызываю ajax - PullRequest
0 голосов
/ 22 апреля 2019

Я использую ajax для создания новых Color (id, name) и Size (id, name), и я получаю их идентификатор, количество в строке в таблице Quantities, но проверяя базу данных, они не появляются и получают ошибку.

Я получаю данные о размере, цвете при вызове ajax, но когда я проверяю SQL Server, у него нет идентификатора.

    $("#btnSaveQuantity").on('click', function () {
        var quantityList = [];

        $.each($('#table-quantity-content').find('tr'), function (i, item) {
            var size = $(item).find('input.txtSize').first().val();
            var color = $(item).find('input.txtColor').first().val();
            addColor(color);
            addSize(size);
            var _color;
            var _size;
            $.ajax({
                url: '/admin/Product/GetSize',
                data: {
                    Name: size,
                },
                async: false,
                type: 'get',
                dataType: 'json',
                success: function (data) {
                    console.log(data);
                    _color = data;
                },
                error: function () {
                    osm.notify('Has an error', 'error');
                }
            });
            $.ajax({
                url: '/admin/Product/GetColor',
                data: {
                    Name: color,
                },
                type: 'get',
                async: false,
                dataType: 'json',
                success: function (data) {
                    console.log(data);
                    _size = data;
                },
                error: function () {
                    osm.notify('Has an error', 'error');
                }
            });
            quantityList.push({
                Id: $(item).data('id'),
                ProductId: $('#hidId').val(),
                Quantity: $(item).find('input.txtQuantity').first().val(),
                SizeId: _size.Id,
                ColorId: _color.Id,
            });
        });
        $.ajax({
            url: '/admin/Product/SaveQuantities',
            data: {
                productId: $('#hidId').val(),
                quantities: quantityList
            },
            async: false,
            type: 'post',
            dataType: 'json',
            success: function (response) {
                $('#modal-quantity-management').modal('hide');
                $('#table-quantity-content').html('');
            }
        });
    });

  function addColor(color) {
        $.ajax({
            url: '/admin/Product/AddColor',
            data: {
                Name: color,
            },
            type: 'post',
            dataType: 'json',
            error: function () {
                osm.notify('Has an error', 'error');
            }
        });
    }
    function addSize(size) {
        $.ajax({
            url: '/admin/Product/AddSize',
            data: {
                Name: size,
            },
            type: 'post',
            dataType: 'json',
            error: function () {
                osm.notify('Has an error', 'error');
            }
        });
    }

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

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