Подсчитать результаты, возвращенные в вызове AJAX от выбранного родителя - PullRequest
0 голосов
/ 18 февраля 2019

Мой первый всплывающий список отличается от customers с cust_id от вызова AJAX.Я пытаюсь получить количество строк с cust_id, которые совпадают с выбранным клиентом.

Например: если я выбираю "Jeffs Music" из отдельного списка, мне нужно, чтобы количество возвращало 5, поскольку есть 5 строк, которые cust_id = "15"

$('.add-invoice').live('click', function() {
  $("#invoice_div").css("display", "block");

  $.ajax({
    url: 'invoice_fill.php',
    data: {
      action: "invoice"
    },
    dataType: 'json',
    success: function(data) {
      var result = [];
      $.each(data, function(i, e) {
        var matchingItems = $.grep(result, function(item) {
          return item.customer === e.customer && item.cust_id === e.cust_id;
          console.log(item.cust_id);
        });
        if (matchingItems.length === 0) {
          result.push(e);
        }
      });

      var xyz = (JSON.stringify(result));
      console.log(xyz);

      populateSelectBoxes($('#invoice_div #ddinvoice'), result);

      function populateSelectBoxes($select, result) {
        var invoices = [];

        $.each(result, function() {
          invoices.push('<li data-value="' + this.cust_id + '">' + this.customer + ' : ' + this.invoice + '</li>');
        });
        $select.append(invoices.join(''));
      }

      function populateTableRow(data, selectedProductAutonum) {
        var invoices;
        $.each(result, function() {
          if (this.cust_id == selectedProductAutonum) {
            invoices = this;

            var arr = this.cust_id;
            var occurrences = {};
            for (var i = 0, j = arr.length; i < j; i++) {
              occurrences[arr[i]] = (occurrences[arr[i]] || 0) + 1;
            }
            console.log(occurrences);

            return false;
            // changed autonun to cust_id to give unique record/product call (changed in line 248 as well)
          }
        });

        $(".item-row:last").after(
          '<tr class="item-row"><td class="item-name"><div class="delete-wpr"><textarea form ="testinsert" name="item_name[]">Item Name</textarea><a class="delete" href="javascript:;" title="Remove row">X</a><a class="add-product" href="javascript:;" title="Add Product">A</a></div></td><td class="description"><textarea form ="testinsert" name="item_desc[]">Description</textarea></td><td><textarea class="cost" form ="testinsert" name="item_cost[]">$0</textarea></td><td><textarea class="qty" form ="testinsert" name="item_qty[]">0</textarea></td><td><span class="price" form ="testinsert" name="item_price[]">$0</span></td></tr>');
        if ($(".delete").length > 0) $(".delete").show();
        bind();

        $('#address-title').val(invoices.customer);
        $('#address-one').val(invoices.address);
        //$('#address-two').val(invoices.sales + '\n' + invoices.owed);
        //$('#address-three').val(invoices.address3);
        ///////////////////////////////////////////
        $('#invoice_num').val(invoices.invoice);
        $('#paid').val(invoices.paid);
        $('#owed').val(invoices.sales);
        $('#auto_num').val(invoices.autonum);
        ///////////////////////////////////////////
        $('[name="item_name[]"]').val(invoices.product);
        $('[name="item_desc[]"]').val(invoices.description);
        $('[name="item_cost[]"]').val(invoices.cost);
        $('[name="item_qty[]"]').val(invoices.quantity);
        $('[name="item_price[]"]').val(invoices.price);
      }

      $('#invoice_div #ddinvoice li').click(function(e) {
        var selection = $(this).attr("data-value");
        $(this).parent().parent().parent().hide();
        populateTableRow(data, selection);
        $('ul').empty();
      });
    }
  });
  update_total();
});

Посмотрите на это jsFiddle для полного кода.Это должно быть понятно, однако вызовы AJAX в нем не работают?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...