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

spinastr 08.02.2018 14:13

Или можно как то в этот скрипт

<script> 
$.getJSON("https://www.cbr-xml-daily.ru/daily_json.js", function(data) { 
var Value = data.Valute.USD.Value 
var Previous = data.Valute.USD.Previous 
function trend(Value, Previous) { 
if (Value > Previous) return '<b style="color:#00ff00;"> ▲</b>'; 
if (Value < Previous) return '<b style="color:#ff0000;"> ▼</b>';
return ''; 
} 
var trend = trend(data.Valute.USD.Value, data.Valute.USD.Previous); 
 $('#usd').html("$&nbsp;&nbsp;" +data.Valute.USD.Value.toFixed(2) +trend); 
}); 
</script>


в див вывести в ( title="Посмотреть курс валют"><div id="usd"></div>)

подсказку в виде даты с которой берётся курс?

laimas 08.02.2018 14:20

Цитата:

Сообщение от spinastr
подсказку в виде даты с которой берётся курс?

Какую подсказку? В источнике указываются даты, получайте и выводите их куда надо. А вот это

if (Value > Previous) return '<b style="color:#00ff00;"> ▲</b>';
if (Value < Previous) return '<b style="color:#ff0000;"> ▼</b>';

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

j0hnik 08.02.2018 14:22

Цитата:

Сообщение от spinastr (Сообщение 477285)

подсказку в виде даты с которой берётся курс?

добавить
data.Date

spinastr 08.02.2018 14:27

Цитата:

Сообщение от laimas (Сообщение 477286)
Какую подсказку? В источнике указываются даты, получайте и выводите их куда надо. А вот это

if (Value > Previous) return '<b style="color:#00ff00;"> ▲</b>';
if (Value < Previous) return '<b style="color:#ff0000;"> ▼</b>';

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

Сейчас стрелка показывает вверх и на сайте цб тоже вверх.

(Про подсказку, просто что бы было видно за какое число данные)

Сейчас в json показывает курс на завтра


spinastr 08.02.2018 14:28

j0hnik,

так?

title="data.Date - Посмотреть курс валют"><div id="usd"></div>

spinastr 08.02.2018 14:30

j0hnik,
Скажите как из php скрипта, вывести данные на сайт на котором нет php, ? У меня есть да php скрипта которые выводят данные точно с ЧБ РФ. Подскажите как вывести?

Первый

Второй

В таком формате $ 56.77 ▲ на js

j0hnik 08.02.2018 14:36

title="Посмотреть курс валют"> - что это за тег?
в php я к сожалению не разбираюсь, может кто другой подскажет

spinastr 08.02.2018 14:43

j0hnik,

У меня панель на сайте, там бок div

<li><div class="wow fadeInLeft animated" style="visibility: visible; animation-name: bounceIn;"><a href="index/grafik_kursa_valjut/0-167" title="СЮДА ВЫВЕСТИ ДАТУ - Посмотреть курс валют"><div id="usd"></div> </div></a></li>



вывести в title.

Ещё вопрос если в php не разбираетесь можно js вывести данные с ЦБ РФ или нужно обязательно сервер с php?

laimas 08.02.2018 14:44

Цитата:

Сообщение от spinastr
Дело в том что я подключил php на стороне

Что значит на стороне? Если имеется ввиду, что на неком домене также своем, то клиент должен делать запрос к РНР скрипту на этом домене, который и будет отдавать курс. Если на этом домене есть и планировщик задач, то получение курса (запрос к ЦБ) нужно производить планировщиком раз в день. Полученный курс сохранять в базе, если БД нет, можно и в файл.

На запрос клиента к этому домену скрипт должен передавать заголовок "Access-Control-Allow-Origin: имя вашего домена", с которого клиент производит запрос.

Если при этом использовать SOAP сервер, то получение может быть таким:

if(PHP_SAPI == 'cli') {
    //установить директорию, все необходимые подключения производить относительно этой директории 
    chdir(dirname(__FILE__));

    try {
        //получение кураса доллара на текущую дату
        $client = new SoapClient("http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?wsdl"); 
        $curs = $client->GetCursOnDate(["On_date"=>date('Y-m-d')]);
        $rate = new SimpleXMLElement($curs->GetCursOnDateResult->any);
        $result = $rate->xpath('ValuteData/ValuteCursOnDate[VchCode="USD"]');
        $usd = (float)$result[0]->Vcurs/(int)$result[0]->Vnom;
        
        if($usd) {
            //здесь сохранение курса в базе
        }
    } catch (Exception $e) {
        
    }
}


Здесь описание методов севера. Если использовать запрос xml, то ответ сервера разобрать посредством SimpleXML и сохранить.

j0hnik 08.02.2018 14:49

<li>
	<div class="wow fadeInLeft animated" style="visibility: visible; animation-name: bounceIn;">
		<a href="index/grafik_kursa_valjut/0-167" title="СЮДА ВЫВЕСТИ ДАТУ - Посмотреть курс валют">
			<div id="usd"></div> 
		</div>
	</a>
</li>


Старайтесь форматировать, так будут ошибки заметнее.
Посмотрите внимательно


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