如何将数据从Javascript页面传递到Controller到MySQL DB?

时间:2016-04-22 16:55:16

标签: javascript jquery ajax spring-mvc

这是我第一次在这里发帖!我试图弄清楚如何从js脚本中检索数据然后将其传递给控制器​​以将其添加到我的数据库或更新我的数据库?我在网上发现了这个座位图JS插件

我目前正在使用MySQL数据库,而MyBatis则用于ORM。我们团队中的任何人似乎都无法弄清楚如何使这个ajax调用工作的方式是在点击购买按钮之后,然后ajax调用必须以某种方式将数据发送到控制器然后发送到我们的数据库。

有人可以帮忙吗?

编辑: 我正在使用Spring MVC。我尝试使用控制器方法使用@Requestparam并且我一直收到错误"所需的字符串参数不存在"。 问题是我不知道如何通过“选定座位”。和单击提交按钮时控制器的相应变量

<script>
var price = 7; //price

$(document).ready(function() {
var $cart = $('#selected-seats'), //Sitting Area
$counter = $('#counter'), //count of seats
$total = $('#total'); //Total money

var sc = $('#seat-map').seatCharts({
    map: [
            'aaaaa',
            'aaaaa',
            '_____',
            'aaaaa',
            'aaaaa',
            '_____',
            'aaaaa',
            'aaaaa',
            'aaaaa',
        ],
    naming : {
        top : false,
        getLabel : function (character, row, column) {
            return column;
        }
    },
    legend : { //Definition legend
        node : $('#legend'),
        items : [
            [ 'a', 'available',   'Available' ],
            [ 'a', 'unavailable', 'Sold']
        ]                   
    },

    click: function () { //Click event
        if (this.status() == 'available') { //optional seat
            $('<li>Row '+(this.settings.row+1)+' Seat '+this.settings.label+'</li>')
                .attr('id', 'cart-item-'+this.settings.id)
                .data('seatId', this.settings.id)
                .appendTo($cart);

            $counter.text(sc.find('selected').length+1);
            $total.text(recalculateTotal(sc)+price);

            return 'selected';
        } else if (this.status() == 'selected') { //Checked
                //Update Number
                $counter.text(sc.find('selected').length-1);
                //update totalnum
                $total.text(recalculateTotal(sc)-price);

                //Delete reservation
                $('#cart-item-'+this.settings.id).remove();
                //optional
                return 'available';
        } else if (this.status() == 'unavailable') { //sold
            return 'unavailable';
        } else {
            return this.style();
        }

        $.ajax({
                url : $("Seatmap").attr("action"),
                data: data,
                type: "GET",

                success: function(data) {
                    alert(data);
                },

                error:function(xhr, status, error) {
                    alert(xhr.responseText);
                }
            });




    }


});
//sold seat
sc.get(['1_2', '4_4','4_5','6_6','6_7','8_5','8_6','8_7','8_8', '10_1', '10_2']).status('unavailable');

});
//sum total money
function recalculateTotal(sc) {
var total = 0;
sc.find('selected').each(function () {
    total += price;
});

return total;
}

0 个答案:

没有答案