Вставка данных с помощью ajax

93
04 декабря 2020, 08:50

На странице есть 2 таблицы, мне туда нужно вставлять ордера из БД, делаю с помощью ajax. Данные вставляются, но почему-то первый столбец в таблице пропускается и вставка данных начинается со 2го столбца Таблицы прописаны так:

    <div class="table table--info">
                <div class="table__content">
                  <table>
                    <thead>
                      <tr>
                        <th>Ask</th>
                        <th>Size</th>
                        <th>Total</th>
                        <th>Sum</th>
                      </tr>
                    </thead>
                    <tbody class="orders__table" id="orders__table_BUY">
                      <tr>
                      </tr>
                    </tbody>
                  </table>
                </div>
              </div>
<div class="table table--info">
            <div class="table__content">
              <table>
                <thead>
                  <tr>
                    <th>Ask</th>
                    <th>Size</th>
                    <th>Total</th>
                    <th>Sum</th>
                  </tr>
                </thead>
                <tbody class="orders__table" id="orders__table_SELL">
                  <tr>
                  </tr>
                </tbody>
              </table>
            </div>
          </div>

Скрипт на вставку данных:

setInterval(function(){ 
    $.ajax({
            url: "Trade_orderbook.php",
            type: "POST",
            data: {refresh:true}, // Передаем данные для записи
            dataType: "json",
            success: function(result) {
                var table=document.getElementById("orders__table_BUY");
                var tables=document.getElementById("orders__table_SELL");
                if (result.orderbook!=null){
                    while (table.firstChild) {
                        table.removeChild(table.firstChild);
                    }
                    while (tables.firstChild) {
                        tables.removeChild(tables.firstChild);
                    }

                    for (var i = result.orderbook['price'].length; i > 0 ; i--){
                        if (result.orderbook['name_prod'][i]==CoinProd) {
                            if (result.orderbook['type_operation'][i]=='BUY')
                            CreateKirRowOrd(result.orderbook['amount'][i], result.orderbook['price'][i],i,"orders__table_BUY", result.orderbook['type_operation'][i],result.orderbook['dttm_create_order'][i])
                        }
                    }

                    for (var i = 0; i < result.orderbook['price'].length; i++)  {
                        if (result.orderbook['name_prod'][i]==CoinProd) {
                            if (result.orderbook['type_operation'][i]=='SELL')
                            CreateKirRowOrd(result.orderbook['amount'][i], result.orderbook['price'][i],i,"orders__table_SELL", result.orderbook['type_operation'][i],result.orderbook['dttm_create_order'][i])
                        }
                    }

                }
                else{
                    while (table.firstChild) {
                        table.removeChild(table.firstChild);
                    }                    
                }
            },
            error: function(){
                var table=document.getElementById("my_orders_table");
                while (table.firstChild) {
                    table.removeChild(table.firstChild);
                }
            }
    });
}, 1000);
function CreateKirRowOrd(Ord_Amount, Ord_Price,i,table, Type,Time){
    var tbody = document.getElementById(table);
    var Row_Order = document.createElement('tr');
    Row_Order.classList.add('orders__table-row');
    Row_Order.id="Ueser_Orders_Row_"+i;
    Row_Order.onclick=function() {
    }
    Row_Order.style.cursor = "pointer";
    var Row_Order_Color = document.createElement('td');
    Row_Order_Color.classList.add('book__table-progress');
    if (Type == "BUY"){
        Row_Order.style.backgroundColor  ="#d0f4ee";
        Row_Order_Color.classList.add('book__table-progress');
        Row_Order_Color.style.marginLeft ="auto";
        Row_Order_Color.style.width=100+"%";
    }
    else{
        Row_Order_Color.classList.add('book__table-progress--red');
        Row_Order_Color.style.width=100+"%";
    }
    Row_Order.appendChild(Row_Order_Color);

    var Row_Order_Amount = document.createElement('td');
    Row_Order_Amount.classList.add("orders__table-amount");
    //100000000
    Row_Order_Amount.innerHTML=(Ord_Amount/1).toFixed(8);
    Row_Order_Amount.style.transform="translateX(-5px)";
    Row_Order.appendChild(Row_Order_Amount);
    var Row_Order_Price = document.createElement('td');
    Row_Order_Price.classList.add("orders__table-price");
    Row_Order_Price.innerHTML=parseFloat(Ord_Price).toFixed(8);
    Row_Order_Price.style.transform="translateX(7px)";
    Row_Order.appendChild(Row_Order_Price);
    //100000000
    var total=Ord_Price*Ord_Amount/1;
    var Row_Order_Total = document.createElement('td');
    Row_Order_Total.classList.add("orders__table-total");
    Row_Order_Total.innerHTML=parseFloat(total).toFixed(8);
    Row_Order_Total.style.transform="translateX(10px)";
    Row_Order.appendChild(Row_Order_Total);
    tbody.insertBefore(Row_Order, tbody.firstChild);
}  
Answer 1

Не разбирая дословно всю Вашу простыню кода, рискну предположить, что в данной строке:

for (var i = result.orderbook['price'].length; i > 0 ; i--){

условие должно быть >=, и начинать следует с .length - 1:

for (var i = result.orderbook['price'].length - 1; i >= 0 ; i--){
READ ALSO
Регулярные выражения для дат в Javascript

Регулярные выражения для дат в Javascript

Задача Есть инпут, который принимает текст в формате дате в виде ДДММ

123
Отловить событие перед загрузкой html

Отловить событие перед загрузкой html

Делаю 2 типа менюКакое из них загрузится пользователю решается с помощью js относительно ширины экрана

121
Изменить значение cookie по второму клику

Изменить значение cookie по второму клику

Как изменить значение cookie по второму клику по элементу?

93