Как в этом скрипте Евро вывести?
|
Заменить current.json этим
{"date":"22.2.2018","rate":{"USD":{"value":56.6537 ,"dyn":2},"EUR":{"value":69.8087,"dyn":1}}} Код current.php заменить этим: <? libxml_use_internal_errors(); if($xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_daily.asp?date_req='.date('d/m/Y', strtotime('+1 day')))) { $date = strtotime($xml->attributes()->Date); $currency = json_decode(file_get_contents('current.json')); if($date > strtotime($currency->date)) { foreach ($xml->children() as $child) { //обход полученных курсов if($child->NumCode==840 || $child->NumCode==978) $rate[$child->CharCode->__toString()] = (float)str_replace(',', '.', $child->Value); if(count($rate)==2) break; } if($rate) { $currency->date = date('j.n.Y', $date); foreach($currency->rate as $k => &$v) { $v->dyn = ($n = $rate[$k] - $v->value) < 0 ? 1 : ($n ? 2 : 0); $v->value = $rate[$k]; } $dir = dirname(__FILE__); chdir($dir); chmod($dir, 0777); file_put_contents('current.json',json_encode($currency)); chmod($dir, 0700); } } } ?> JS код вывода курса на страницу тоже надо изменить. Какой код, включая и html-верстку элементов под курсы используется? |
laimas,
Спасибо, это коды валют? if($child->NumCode==840 || $child->NumCode==978) Как можно вывести. Точно также как сейчас есть, то есть курс на сегодня и завтра доллара и добавить курс на сегодня и завтра ЕВРО? |
Нет в данном коде никаких курсов на сегодня и завтра, есть текущий курс доллара и евро.
Спрашивается - какой код на клиенте ля вывода валюты, включая html верстку? Вот что непонятного из этого? Показывайте код клиентский, напишу изменения, а нет, так нет, долгие разговоры мне вести некогда. |
Цитата:
<html lang="ru"> <head> <meta charset="utf-8" /> <title>Документ без названия</title> <script type="text/javascript" src="http://forum.ucoz.ru/.s/src/jquery-1.7.2.js"></script> </head> <body> <style> .up {color: #0f0; /*зеленый цвет*/} .down {color: #f00;} </style> <table style="width:50%;font-family: Verdana, Arial, Helvetica, sans-serif;"> <tbody> <tr> <td style="font-size: 3vw; color: #8c8c8c;"><span class="usddata2"></span></td> <td style="font-size: 3vw; color: #8c8c8c;"><span class="usddata"></span></td> </tr> <tr> <td style="font-size: 4vw; color: #333333;"><span class="previous"></span></td> <td style="font-size: 4vw; color: #333333;"><span class="current"></span></td> </tr> </tbody> </table> <script> //именно такое и получит Ajax $.getJSON("http://h116641.s08.test-hf.su/", function(data) { $('.usddata').html(data.current.date); $('.usddata2').html(data.previous.date); //и вот тут данные этого объекта помещаются на свои места $.each(data, function(k, o) { $('.'+k).html("$ " + o.value + ' <b class=' + ['','down','up'][o.rate] +'>' + ['','▼','▲'][o.rate] +'</b>').attr("title", o.date) }) }); </script> </body> </html> Визуально это выглядит так: https://pp.userapi.com/c841127/v8411...McDyFLQydg.jpg |
А надо курсы также текущий день (или новый курс) и предыдущий, но доллара и евро?
|
Цитата:
|
Тогда current.json заменить этим
{"current":{"date":"22.2.2018","USD":{"value":56.6 537,"rate":2},"EUR":{"value":69.8087,"rate":1}},"p revious":{"date":"21.2.2018","USD":{"value":56.520 1,"rate":2},"EUR":{"value":69.8928,"rate":1}}} Код current.php заменить этим <? libxml_use_internal_errors(); if($xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_daily.asp?date_req='.date('d/m/Y', strtotime('+1 day')))) { $date = strtotime($xml->attributes()->Date); $currency = json_decode(file_get_contents('current.json'), 1); if($date > strtotime($currency['current']['date'])) { foreach ($xml->children() as $child) { if($child->NumCode==840 || $child->NumCode==978) $rate[$child->CharCode->__toString()] = (float)str_replace(',', '.', $child->Value); if(count($rate)==2) break; } if($rate) { $currency['previous'] = $currency['current']; $currency['current']['date'] = date('j.n.Y', $date); foreach($currency['current'] as $k => &$v) { if($k=='date') continue; $v['rate'] = ($n = $rate[$k] - $v['value']) < 0 ? 1 : ($n ? 2 : 0); $v['value'] = $rate[$k]; } $dir = dirname(__FILE__); chdir($dir); chmod($dir, 0777); file_put_contents('current.json',json_encode($currency)); chmod($dir, 0700); } } } ?> HTML/JS <table> <tr> <td><span class="previous date"></span></td> <td><span class="current date"></span></td> </tr> <tr> <td><span class="previous USD"></span></td> <td><span class="current USD"></span></td> </tr> <tr> <td><span class="previous EUR"></span></td> <td><span class="current EUR"></span></td> </tr> </table> <script> //именно такое и получит Ajax $.getJSON("http://h116641.s08.test-hf.su/", function(data) { $.each(data, function(k, o) { $.each(o, function(a, r) { $('.'+k+'.'+a).html( a=='date' ? r : {'USD':'$','EUR':'€'}[a] + ' ' + r.value.toFixed(2) + ' <b class=' + ['','down','up'][r.rate] +'>' + ['','▼','▲'][r.rate] +'</b>' ) }) }) }); </script> Стили надо в css описывать, а не забивать ими таблицу. Не надо выдумывать usddata2, usddata3, ... Элемент, в который нужно поместить информацию ему принадлежащую, находится по составному имени класса, которые равны ключам json. Для дат это previous.date, current.date, а для курса соответственно USD или EUR вместо date. И пусть элементов с таким классом будет куча на странице, во все будет помещено. .attr("title", o.date) удалено, смысла нет, если даты в заголовках указаны. |
Цитата:
|
В какой панели, если в коде показана таблица с явным указанием дат?
Что кто-то будет догадываться как обратиться к неизвестной панели? Нет конечно. |
Часовой пояс GMT +3, время: 03:26. |