JQuery API-вызов, показывающий пустой возврат - PullRequest
0 голосов
/ 02 сентября 2018

пытался изменить вызов API для загрузки через jquery после загрузки страницы, кто-то другой помог мне, но не может заставить его работать. Он загружается в php, и я не уверен, что синтаксис правильный.

http://staging3.cryptocritix.com - Посмотрите на виджет МОЖНО НЕДАВНО ТОРГОВЛИ ICO

<?php
    $args = array(
        'include' => "47,54,62,56,50,64,65",
        'max' => 10
    );
 if ( bp_has_groups( $args) ) :
        while ( bp_groups() ) : bp_the_group(); 
?>

<li>
    <?php
    $cmc_id = $setting['cmc_ticker'];
    $json_url = 'https://api.coinmarketcap.com/v2/ticker/'.$cmc_id.'/';
    ?>
<script>
$(document).ready(function() {
  $.ajax({
    url: '<?php echo $json_url ?>',
    dataType: 'json',
    success: function(data) {                                               
      let ico_roi = data.price;
      let div = document.createElement('div');
      $(div).html(ico_roi);
      console.log(ico_roi);
      $('#price-showing-after-page-load').html(div);
    }
  });
});
</script>
</li>

возвращается JSON URL;

{
    "data": {
        "id": 1, 
        "name": "Bitcoin", 
        "symbol": "BTC", 
        "website_slug": "bitcoin", 
        "rank": 1, 
        "circulating_supply": 17244475.0, 
        "total_supply": 17244475.0, 
        "max_supply": 21000000.0, 
        "quotes": {
            "USD": {
                "price": 7185.30010797, 
                "volume_24h": 4157028720.19653, 
                "market_cap": 123906728079.0, 
                "percent_change_1h": -0.06, 
                "percent_change_24h": 2.22, 
                "percent_change_7d": 6.79
            }
        }, 
        "last_updated": 1535841206
    }, 
    "metadata": {
        "timestamp": 1535840724, 
        "error": null
    }
}

1 Ответ

0 голосов
/ 02 сентября 2018

Спасибо за обновление, содержащее данные.

Проблема проста - price находится в под-свойстве объектов "data" -> "quotes" -> "USD". Это на 3 слоя вниз, это не прямой потомок корня объекта. Вы можете ясно увидеть это, посмотрев на структуру JSON. Я предполагаю, что когда у вас был этот код в PHP, вы должны были получить доступ к "цене" в том же месте в структуре.

Вот рабочая демонстрация:

$(document).ready(function() {
  $.ajax({
    url: 'https://api.coinmarketcap.com/v2/ticker/1/',
    dataType: 'json',
    success: function(response) {
      $('#price-showing-after-page-load').html(response.data.quotes.USD.price);
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="price-showing-after-page-load">

</div>

N.B. Я переименовал корневой объект как «ответ», чтобы отличить его от «данных», которые являются свойством этого объекта.

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

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