جشنواره عیدانه راکت | عضویت ویژه راکت برای آخرین بار | افزایش قیمت‌ها از سال جدید | و ...

مشاهده اطلاعات بیشتر...
ثانیه
دقیقه
ساعت
روز
4 پاسخ

مشکل کد جاوا اسکریپت

سلام دوستان من توی این قسمت جاوا اسکریپتم مشکل دارم لطفا کمکم کنید

توی پروژه ای که دارم میزنم این قسمتی که تعداد محصولات رو انتخاب میکنیم به صورت number-input هست
این قسمت کدم رو به این صورت نوشتم و این خطا رو در console میبینم
jquery-۳.۵.۱.js:۱۰۰۹۹ POST http://۱۲۷.۰.۰.۱:۸۰۰۰/cart/quantity/change ۴۲۲ (Unprocessable Entity)

این کد قسمت js

<script>
    document.querySelector('.numPlus_icon').addEventListener('click', function changeQuantity(event, id) {
        console.log(id);
        this.parentNode.querySelector('input[class="quantity"]').stepUp()
        let quantity = document.querySelector('#quantity').value;

        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': document.head.querySelector('meta[name="csrf-token"]').content,
                'Content-Type': 'application/json'
            }
        })

        $.ajax({
            type: 'POST',
            url: '/cart/quantity/change',
            data: JSON.stringify({
                id: id,
                quantity: quantity,
                _method: 'patch'
            }),
            success: function(res) {
                location.reload();
            }
        });
    })

    document.querySelector('.numminus_icon').addEventListener('click', function changeQuantity(event, id) {
        this.parentNode.querySelector('input[type=number]').stepDown()
        let quantity = document.querySelector('#quantity').value;

        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': document.head.querySelector('meta[name="csrf-token"]').content,
                'Content-Type': 'application/json'
            }
        })

        $.ajax({
            type: 'POST',
            url: '/cart/quantity/change',
            data: JSON.stringify({
                id: id,
                quantity: quantity,
                _method: 'patch'
            }),
            success: function(res) {
                location.reload();
            }
        });
    })
</script>

این کد اون قسمت html که اون input داخلش هست

<div class="number-input">
    <button class="numPlus_icon"></button>
    <input onchange="changeQuantity(event, '{{ $cart['id'] }}')" class="quantity" id="quantity" min="0" disabled max="{{ $product['inventory'] }}" name="quantity" value="{{ $cart['quantity'] }}" type="number">
    <button class="numminus_icon"></button>
</div>

این جا هر بار روی دکمه + یا - میزنم این خطا میاد
توضیح تصویر رو وارد کنید

توی تب نتورک هم که رفتم دیدم به id گیر داده مشکل کجای کدمه که ایدی رو نمیگیره؟
توضیح تصویر رو وارد کنید


ثبت پرسش جدید
محمدهادی باقریان
تخصص : web developer
@mohammadhadi 3 سال پیش مطرح شد
0

درستش کردم
توی این قسمت یه input type hidden گذاشتم و مقدار اون رو به متغیر id داخل کد js دادم

کد html به این شکل شد

<div class="number-input" style="margin-bottom: 20px; margin-top: 20px;">
    <button class="numPlus_icon"></button>
    <input type="hidden" value="{{ $cart['id'] }}" name="" id="cart_id">
    <input class="quantity" id="quantity" min="1" disabled max="{{ $product['inventory'] }}" name="quantity" value="{{ $cart['quantity'] }}" type="number">
    <button class="numminus_icon"></button>
</div>

اینم js

<script>
    document.querySelector('.numPlus_icon').addEventListener('click', function() {
        // console.log(id);
        this.parentNode.querySelector('input[class="quantity"]').stepUp()
        let quantity = document.querySelector('#quantity').value;
        let id = document.querySelector('#cart_id').value;

        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': document.head.querySelector('meta[name="csrf-token"]').content,
                'Content-Type': 'application/json'
            }
        })

        $.ajax({
            type: 'POST',
            url: '/cart/quantity/change',
            data: JSON.stringify({
                id: id,
                quantity: quantity,
                _method: 'patch'
            }),
            success: function(res) {
                location.reload();
            }
        });
    })

    document.querySelector('.numminus_icon').addEventListener('click', function() {
        this.parentNode.querySelector('input[type=number]').stepDown()
        let quantity = document.querySelector('#quantity').value;
        let id = document.querySelector('#cart_id').value;

        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': document.head.querySelector('meta[name="csrf-token"]').content,
                'Content-Type': 'application/json'
            }
        })

        $.ajax({
            type: 'POST',
            url: '/cart/quantity/change',
            data: JSON.stringify({
                id: id,
                quantity: quantity,
                _method: 'patch'
            }),
            success: function(res) {
                location.reload();
            }
        });
    })
</script>

محمدهادی باقریان
تخصص : web developer
@mohammadhadi 3 سال پیش مطرح شد
0

سلام حسام جان شما توی این قسمت میتونید کمکم کنید؟ @hesammousavi


محمد حسین
@muhamad 3 سال پیش مطرح شد
0

سلام ممکنه کد لاین 422 تون رو بدید
احتمالا Syntax ارور باشه


محمدهادی باقریان
تخصص : web developer
@mohammadhadi 3 سال پیش مطرح شد
محمدهادی باقریان
تخصص : web developer
@mohammadhadi 3 سال پیش مطرح شد
0

درستش کردم
توی این قسمت یه input type hidden گذاشتم و مقدار اون رو به متغیر id داخل کد js دادم

کد html به این شکل شد

<div class="number-input" style="margin-bottom: 20px; margin-top: 20px;">
    <button class="numPlus_icon"></button>
    <input type="hidden" value="{{ $cart['id'] }}" name="" id="cart_id">
    <input class="quantity" id="quantity" min="1" disabled max="{{ $product['inventory'] }}" name="quantity" value="{{ $cart['quantity'] }}" type="number">
    <button class="numminus_icon"></button>
</div>

اینم js

<script>
    document.querySelector('.numPlus_icon').addEventListener('click', function() {
        // console.log(id);
        this.parentNode.querySelector('input[class="quantity"]').stepUp()
        let quantity = document.querySelector('#quantity').value;
        let id = document.querySelector('#cart_id').value;

        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': document.head.querySelector('meta[name="csrf-token"]').content,
                'Content-Type': 'application/json'
            }
        })

        $.ajax({
            type: 'POST',
            url: '/cart/quantity/change',
            data: JSON.stringify({
                id: id,
                quantity: quantity,
                _method: 'patch'
            }),
            success: function(res) {
                location.reload();
            }
        });
    })

    document.querySelector('.numminus_icon').addEventListener('click', function() {
        this.parentNode.querySelector('input[type=number]').stepDown()
        let quantity = document.querySelector('#quantity').value;
        let id = document.querySelector('#cart_id').value;

        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': document.head.querySelector('meta[name="csrf-token"]').content,
                'Content-Type': 'application/json'
            }
        })

        $.ajax({
            type: 'POST',
            url: '/cart/quantity/change',
            data: JSON.stringify({
                id: id,
                quantity: quantity,
                _method: 'patch'
            }),
            success: function(res) {
                location.reload();
            }
        });
    })
</script>

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام