Не удалось рассчитать цену и количество в таблице с использованием Php Ajax

Я создаю сайт электронной коммерции для своего последнего проекта года. Пока я создаю проект, с которым я столкнулся, проблема с продуктом должна быть в состоянии добавить карту, но когда я просматриваю показанный продукт карты, который я добавил в карту. моя проблема если дать количество, он будет автоматически вычислять и отображать результат в общем текстовом поле. Я приложил изображение ниже того, что я пробовал до сих пор. Но не смог подсчитать общий и итоговый итог. Показать продуктыНе удалось рассчитать цену и количество в таблице с использованием Php Ajax

<script>
getProducts();

    function getProducts() {
        $.ajax({
            type: 'GET',
            url: 'all_cart.php',
            dataType: 'JSON',
            success: function(data) {
                data.forEach(function(element) {
                    var id = element.id;
                    var product_name = element.product_name;
                    var price = element.price;
                   $('#mytable tbody').after
                   (
                        '<tr> ' +
                        '<td>' + id + '</td>' +
                        '<td>' + product_name + '</td>' +
                        '<td>' + price + '</td>' +
                        "<input type='hidden' name='price' value='" + price + "'>" +
                        '<td>' + "<input type = 'text' id='qty' name='qty'/>" + '</td>' +
                        '<td>' + "<input type = 'text' id='amount'/>" + '</td>' +
                        '</tr>');
                  });
            },
            error: function(xhr, status, error) {
                alert(xhr.responseText);
            }
        });
    }

Автоматический расчет цены * кол-во

$(function() {
    $("#price, #qty").on("keydown keyup click", qty);
    function qty() {
        var sum = (
        Number($("#price").val()) * Number($("#qty").val())
        );

        $('#amount').val(sum);
        console.info(sum);
    }
});

1. несколько одинаковых id не будут работать, когда вы собираетесь использовать их в jquery, поэтому преобразуйте каждый id в class. 2. вы должны использовать $(this) для адресации текущего измененного поля ввода

Anant Kumar Singh 30.05.2019 08:37

вы можете написать код, который легко понять

Nisa Yathu 30.05.2019 08:38
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
88
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Когда вы получаете $("#цена").val() и $("#кол-во").val() в jQuery, но у вас много дубликатов $("#price") и $("#qty"). Вы должны запустить это в консоли. Я надеюсь, что это полезно для вас

Ответ принят как подходящий

Вы не должны добавлять несколько элементов с одинаковым идентификатором на страницу

Ты можешь попробовать

function getProducts() {
    $.ajax({
        ...
               $('#mytable tbody').after
               (
                    '<tr> ' +
                    '<td>' + id + '</td>' +
                    '<td>' + product_name + '</td>' +
                    '<td>' + price + '</td>' +
                    "<input type='hidden' name='price' class='price' value='" + price + "'>" +
                    '<td>' + "<input type = 'text' class='qty' name='qty'/>" + '</td>' +
                    '<td>' + "<input type = 'text' class='amount'/>" + '</td>' +
                    '</tr>');
              });
        },
        error: function(xhr, status, error) {
            alert(xhr.responseText);
        }
    });
}


$(function() {
  $(".price, .qty").on("keydown keyup click", function () {
    var price = $(this).parents('tr').find('.price');
    var qty= $(this).parents('tr').find('.qty');
    var sum = (
    Number($(price).val()) * Number($(qty).val())
    );
    $(this).parents('tr').find('.amount').val(sum);
        calculateAmount();
  });
  function calculateAmount() {
       var total = 0;
       $('.amount').each(function(e){
          total += Number($(this).val());      
       });
       $('#total-amount').text(total);
  }
});

Это демо: https://codepen.io/phuongnm153/pen/bymYOQ

я просто копирую и вставляю код в свой проект, он не работает, сэр. если я ввожу общее количество не отображается

Nisa Yathu 30.05.2019 08:49

Uncaught ReferenceError: tr не определен, я получил сообщение об ошибке на консоли, сэр.

Nisa Yathu 30.05.2019 08:58

Извините за ошибку в $(this).parents('tr')

Ryan Nghiem 30.05.2019 08:59

NaN отображается на консоли, а значения не отображаются в общем текстовом поле.

Nisa Yathu 30.05.2019 09:02

работает, сэр, спасибо за вашу помощь, тогда как рассчитать окончательную сумму, пожалуйста, скажите мне

Nisa Yathu 30.05.2019 09:08

работает хорошо, сэр, окончательная сумма, которую вы хотите отобразить ниже таблицы, можете ли вы мне помочь, сэр?

Nisa Yathu 30.05.2019 09:11

@NisaYathu Я добавил больше function calculateAmount() в соответствии с вашими ожиданиями. Вы можете увидеть мою демонстрацию

Ryan Nghiem 30.05.2019 09:21

Другие вопросы по теме