مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

sange_sabur

عضویت از 1394/01/11

ایجاد الگوی صندلی سالن سینما

  • سه شنبه 15 دی 1394
  • 20:07
تشکر میکنم

درود

چگونه میتوان الگوی سالن سینما را پیاده کرده که خریدار بتواند انتخاب کند.

مانند این سایت

http://parsbelit.com/Shopping.aspx?ID=MIMjY=

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 15 دی 1394
  • 20:13
کاربر سایت

yonesmgo

عضویت از 1394/02/16

  • چهارشنبه 16 دی 1394
  • 11:57
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <div class="demo">
        <div id="seat-map">
            <div class="front">SCREEN</div>
        </div>
        <div class="booking-details">
            <p>Movie: <span> Gingerclown</span></p>
            <p>Time: <span>November 3, 21:00</span></p>
            <p>Seat: </p>
            <ul id="selected-seats"></ul>
            <p>Tickets: <span id="counter">0</span></p>
            <p>Total: <b>$<span id="total">0</span></b></p>

            <button class="checkout-button">BUY</button>

            <div id="legend"></div>
        </div>
        <div style="clear:both"></div>
    </div>
</body>
</html>
<style>
    .front {
        width: 300px;
        margin: 5px 32px 45px 32px;
        background-color: #f0f0f0;
        color: #666;
        text-align: center;
        padding: 3px;
        border-radius: 5px;
    }

    .booking-details {
        float: right;
        position: relative;
        width: 200px;
        height: 450px;
    }

        .booking-details h3 {
            margin: 5px 5px 0 0;
            font-size: 16px;
        }

        .booking-details p {
            line-height: 26px;
            font-size: 16px;
            color: #999;
        }

            .booking-details p span {
                color: #666;
            }

    div.seatCharts-cell {
        color: #182C4E;
        height: 25px;
        width: 25px;
        line-height: 25px;
        margin: 3px;
        float: left;
        text-align: center;
        outline: none;
        font-size: 13px;
    }

    div.seatCharts-seat {
        color: #fff;
        cursor: pointer;
        -webkit-border-radius: 5px;
        -moz-border-radius: 5px;
        border-radius: 5px;
    }

    div.seatCharts-row {
        height: 35px;
    }

    div.seatCharts-seat.available {
        background-color: #B9DEA0;
    }

    div.seatCharts-seat.focused {
        background-color: #76B474;
        border: none;
    }

    div.seatCharts-seat.selected {
        background-color: #E6CAC4;
    }

    div.seatCharts-seat.unavailable {
        background-color: #472B34;
        cursor: not-allowed;
    }

    div.seatCharts-container {
        border-right: 1px dotted #adadad;
        width: 400px;
        padding: 20px;
        float: left;
    }

    div.seatCharts-legend {
        padding-left: 0px;
        position: absolute;
        bottom: 16px;
    }

    ul.seatCharts-legendList {
        padding-left: 0px;
    }

    .seatCharts-legendItem {
        float: left;
        width: 90px;
        margin-top: 10px;
        line-height: 2;
    }

    span.seatCharts-legendDescription {
        margin-left: 5px;
        line-height: 30px;
    }

    .checkout-button {
        display: block;
        width: 80px;
        height: 24px;
        line-height: 20px;
        margin: 10px auto;
        border: 1px solid #999;
        font-size: 14px;
        cursor: pointer;
    }

    #selected-seats {
        max-height: 150px;
        overflow-y: auto;
        overflow-x: none;
        width: 200px;
    }

        #selected-seats li {
            float: left;
            width: 72px;
            height: 26px;
            line-height: 26px;
            border: 1px solid #d3d3d3;
            background: #f7f7f7;
            margin: 6px;
            font-size: 14px;
            font-weight: bold;
            text-align: center;
        } 

</style>

<script src="Scripts/jquery-1.10.2.js"></script>
<script src="Scripts/jquery-1.10.2.min.js"></script>
<script src="Scripts/jquery.seat-charts.min.js"></script>
<script src="Scripts/jquery.seat-charts.js"></script>
<script>
    var price = 10; //price
    $(document).ready(function () {
        var $cart = $('#selected-seats'), //Sitting Area
        $counter = $('#counter'), //Votes
        $total = $('#total'); //Total money

        var sc = $('#seat-map').seatCharts({
            map: [  //Seating chart
                'aaaaaaaaaa',
                'aaaaaaaaaa',
                '__________',
                'aaaaaaaa__',
                'aaaaaaaaaa',
                'aaaaaaaaaa',
                'aaaaaaaaaa',
                'aaaaaaaaaa',
                'aaaaaaaaaa',
                'aa__aa__aa'
            ],
            naming: {
                top: false,
                getLabel: function (character, row, column) {
                    return column;
                }
            },
            legend: { //Definition legend
                node: $('#legend'),
                items: [
                    ['a', 'available', 'Option'],
                    ['a', 'unavailable', 'Sold']
                ]
            },
            click: function () { //Click event
                if (this.status() == 'available') { //optional seat
                    $('<li>R' + (this.settings.row + 1) + ' S' + 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();
                }
            }
        });
        //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;
    }


</script>
کاربر سایت

sange_sabur

عضویت از 1394/01/11

  • پنجشنبه 17 دی 1394
  • 15:29

درود

این الگو ثابت میباشد چگونه امکانی فراهم کنم تا بتوانم هرالگوی صندلی که خواستم را پیاده کنم؟

باتشکر

کاربر سایت

yonesmgo

عضویت از 1394/02/16

  • چهارشنبه 23 دی 1394
  • 11:58

خب کار نداره که شما باید تو قسمت اسکریپت تغییرات رو بدی زیاد سخت نیست یکم مطالعه کنی تو کد قشنگ میگیری که چه خبره بازم اشکال داشتی بپرس 

کاربر سایت

sange_sabur

عضویت از 1394/01/11

  • چهارشنبه 23 دی 1394
  • 14:12

درود

من مشکلم این map هست.

چطوری مقدار دهی بکنیم که براسا الگوی دلخواه ما باشد.

من میخواهم طوری باشه که مثلا 10 تا سینما با الگوی مختلف رو بتونم داینامیک الگوشو پیاده کنم

کاربر سایت

yonesmgo

عضویت از 1394/02/16

  • شنبه 26 دی 1394
  • 16:20

شما باید اطلاعات رو به صورت استاتیک به پایگاه داده تون بدید بعد مثلا وقتی یک رو میزنی سینما شماره یک و اگر دو رو بزنی سینما شماره سه رو بیاره  اینجوری دقیقا به صورت داینامیک میشه 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)