如何将数组中的值转换为字符串并发送到php?

时间:2018-05-01 11:03:39

标签: javascript php

我这里有一个javascript文件。它的作用是,当用户根据他在剧院布局中的偏好选择座位时,所选座位存储在名为“座位”的数组中。这个代码工作正常,直到功能所在的位置选定的座位显示在窗口警报中。但从那时起,代码似乎没有做任何事情。

在上面的窗口警告之后,我试图序列化上面的数组并将其发送到“confirm.php”文件。但是当回显座位时它没有显示任何内容。

这是js代码。

<script type="text/javascript">

    $(function () {
        var settings = {
            rows: 6,
            cols: 15,
            rowCssPrefix: 'row-',
            colCssPrefix: 'col-',
            seatWidth: 80,
            seatHeight: 80,
            seatCss: 'seat',
            selectedSeatCss: 'selectedSeat',
            selectingSeatCss: 'selectingSeat'
        };

        var init = function (reservedSeat) {
            var seat = [], seatNo, className;
            for (i = 0; i < settings.rows; i++) {
                for (j = 0; j < settings.cols; j++) {
                    seatNo = (i + j * settings.rows + 1);
                    className = settings.seatCss + ' ' + settings.rowCssPrefix + i.toString() + ' ' + settings.colCssPrefix + j.toString();
                    if ($.isArray(reservedSeat) && $.inArray(seatNo, reservedSeat) != -1) {
                        className += ' ' + settings.selectedSeatCss;
                    }
                    seat.push('<li class="' + className + '"' +
                            'style="top:' + (i * settings.seatHeight).toString() + 'px;left:' + (j * settings.seatWidth).toString() + 'px">' +
                            '<a title="' + seatNo + '">' + seatNo + '</a>' +
                            '</li>');
                }
            }
            $('#place').html(seat.join(''));
        };

        var jArray = <?= json_encode($seats) ?>;
        init(jArray);


        $('.' + settings.seatCss).click(function () {
            if ($(this).hasClass(settings.selectedSeatCss)) {
                alert('This seat is already reserved!');
            } else {
                $(this).toggleClass(settings.selectingSeatCss);
            }
        });


        $('#btnShowNew').click(function () {
            var seat = [], item;
            $.each($('#place li.' + settings.selectingSeatCss + ' a'), function (index, value) {
                item = $(this).attr('title');
                seat.push(item);
            });
            window.alert(seat);
        });

        $('#btnsubmit').click(function () {
            var seat = [], item;
            $.each($('#place li.' + settings.selectingSeatCss + ' a'), function (index, value) {
                item = $(this).attr('title');
                seat.push(item);
                var seatar = JSON.stringify(seat);
                $.ajax({
                    method: "POST",
                    url: "confirm.php",
                    data: {data: seatar}
                });
            });
        });

    });

</script>

有人可以帮我弄清楚这里有什么问题吗?

1 个答案:

答案 0 :(得分:0)

请将内容类型添加为json。  $.ajax({ method: "POST", url: "confirm.php", contentType: "application/json" data: {data: seatar} });

对于测试,您可以打印file_get_contents('php://input'),因为无论内容类型如何,都可以打印。