Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вывод курса валют (https://javascript.ru/forum/misc/72548-vyvod-kursa-valyut.html)

spinastr 07.02.2018 02:12

Вывод курса валют
 
Здравствуйте!

Подскажите пожалуйста я полный ноль в json и js

Нужно вывести курс доллара со стрелкой в блок class или id. Дальше я сам могу.

Есть такой скрипт

там уже готовый вариант, просто вставить и всё. Но там показывает не точный курс в формате jsonp

есть вариант с точным курсом, там простой json


Пожалуйста помогите вывести курс в div блок?

spinastr 07.02.2018 02:48

Подскажите, пожалуйста, тут есть кто?

j0hnik 07.02.2018 03:16

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
<div id="usd"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$.getJSON("https://www.cbr-xml-daily.ru/daily_json.js", function(data) {
    $('#usd').html(data.Valute.USD.Nominal+" Доллар -> "+ data.Valute.USD.Value+" Рублей");
});
</script>
</body>
</html>

spinastr 07.02.2018 03:34

Ух ты так просто, спасибо огромное, а можно немного сократить?

57.2196 так 57.21

и стрелку добавить, роста или падения?


Иконки не работают

<script>
$.getJSON("https://www.cbr-xml-daily.ru/daily_json.js", function(data) {
    $('#usd').html(data.Valute.USD.Nominal+" <i class="fa fa-usd" aria-hidden="true"></i> "+ data.Valute.USD.Value+" <i class="fa fa-rub" aria-hidden="true"></i>");
});
</script>

spinastr 07.02.2018 03:50

Когда выводится пишется число "1" - 1$ 57.2196 руб. Как его убрать?

j0hnik 07.02.2018 10:22

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
<div id="usd"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script defer src="https://use.fontawesome.com/releases/v5.0.6/js/all.js"></script>

<script>
$.getJSON("https://www.cbr-xml-daily.ru/daily_json.js", function(data) {
    $('#usd').html((data.Valute.USD.Value<data.Valute.USD.Previous?'<i class="fas fa-long-arrow-alt-down"></i>':'<i class="fas fa-long-arrow-alt-up"></i>')+'<i class="fas fa-dollar-sign"></i>'+data.Valute.USD.Value.toFixed(2)+' <i class="fas fa-ruble-sign"></i>');
});
</script>
</body>
</html>

laimas 07.02.2018 10:42

Лучше сократить:

....
var usd = data.Valute.USD;
$('#usdv').html('<i class="fas fa-long-arrow-alt-'+(usd.Value < usd.Previous ? 'down' : 'up')+....


PS. Это замечанию автору. Если сайт завязан на фондовый рынок или товарную биржу, тогда да, динамика курса валюты важна. Но если сайт, это магазин бубликов, то динамически изменяемый курс вреден. Курс валют устанавливается по окончании торгов на валютной бирже, и запрос к СБ нужно делать только один раз - если в локальном хранилище нет курса или локальное хранилище содержит курс не текущей даты.

Dilettante_Pro 07.02.2018 13:07

laimas,
Цитата:

Сообщение от laimas
динамически изменяемый курс вреден

Это не динамически изменяемый курс - это курс валют Центробанка, устанавливаемый на текущую дату

laimas 07.02.2018 13:20

Цитата:

Сообщение от Dilettante_Pro (Сообщение 477182)
Это не динамически изменяемый курс - это курс валют Центробанка, устанавливаемый на текущую дату

Курс валюты ЦБ устанавливается один раз по окончанию торгов на валютной бирже. А вот в течении дня он может колебаться. Представьте магазин в котором в течении дня цены скачут. :) Они минимум в течении недели стабильные.

Dilettante_Pro 07.02.2018 14:03

Цитата:

Сообщение от laimas
А вот в течении дня он может колебаться.

Курс Центробанка в течение дня не колеблется. А загружается именно он.Центробанк


Часовой пояс GMT +3, время: 03:43.