Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Конвертор валют на jq (https://javascript.ru/forum/jquery/55820-konvertor-valyut-na-jq.html)

ufaclub 15.05.2015 19:40

Конвертор валют на jq
 
хочу сделать плагин который бы искал в div#page значение $ и производил конвертацию в руб. Через сайт цб например.

Может кто подскажет как проще реализовать и есть ли может где готовые аналоги.

ufaclub 15.05.2015 20:06

var rub = 1000;
document.getElementById('usd').innerHTML = rub/50;


как сделать так чтобы переменная var rub бралась из содержания div#page например стоимость на 10000 руб.

var принимала бы значение 10000

и в тексте 10000 руб. менялось бы на 200$

laimas 16.05.2015 05:11

Цитата:

Сообщение от ufaclub
хочу сделать плагин который бы искал в div#page значение $ и производил конвертацию в руб. Через сайт цб например

Вот этого не стоит делать. Курс валют устанавливается по итогам торгов на валютной бирже, то есть определяется один раз в день. Более часто обращаться к ЦБ РФ нужно было бы, если бы была нужна динамика курса во время торгов.
Получать же курс нужно планировщиком задач (cron) каждый день в 0 часов московского времени посредством простого скрипта обращающегося к SOAP сервису ЦБ РФ, который предоставляет различную информацию по валютам. Получить курсы валют можно так:
<?
$client = new SoapClient("http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?wsdl"); 
$curs = $client->GetCursOnDate(["On_date"=>date('Y-m-d', strtotime('now -1 day'))]); //получить курсы за предыдущий день
$rate = new SimpleXMLElement($curs->GetCursOnDateResult->any);
$result = $rate->xpath('ValuteData/ValuteCursOnDate[VchCode="USD"]');
$usd = (float)$result[0]->Vcurs/(int)$result[0]->Vnom; //курс доллара
$result = $rate->xpath('ValuteData/ValuteCursOnDate[VchCode="EUR"]');
$eur = (float)$result[0]->Vcurs/(int)$result[0]->Vnom; //курс евро

Полученные курсы записывать в сервисную таблицу, откуда получать их при выводе данных в браузер, то есть сразу можно показывать значения в различных валютах и без клиента. Ну или же передавать клиенту курсы, а на клиенте по запросу показывать цену в другой валюте.

ufaclub 16.05.2015 22:27

с частью как парсить значение курса я понял. А вот как мне находить в тексте значения сумм в долларах и менять на значение в рублях. по курсу...

laimas 17.05.2015 03:20

В каком тексте?

ufaclub 17.05.2015 23:11

например на страничеке html есть текст в блоке
<div id="page">
<p>...........   Стоимость данного кондиционера составляет 1000$</p> 
</div>

мне нужно чтобы скрипт нашел значение $ или € взял число которые перед ним стоит в данном случае это 1000 и заменил его на значение по курсу

т.е на выходе бы получилось

<div id="page">
<p>...........   Стоимость данного кондиционера составляет 50000 руб.</p> 
</div>

Просто как то найти цену в тексте. и загнать ее в переменную и дальше уже заманить на рублевый эквивалент.

laimas 18.05.2015 02:16

Это информационный сайт по бытовой технике или же это магазин? Если это магазин, то почему важная характеристика товаров так неудобно представляется? Если это информационный сайт, в текстах которого нужно проставлять цены по курсу, то почему это не делается на сервере?

ufaclub 18.05.2015 11:11

информационный. просто нужно именно возможность из html кода выдрать значения.

laimas 18.05.2015 11:57

Это только регулярным выражением, можно сразу на стороне сервера при выводе:
$usd = 51.469; //курс доллара хранящийся в базе
$s = '......<div id="page">
<p>..... Стоимость данного кондиционера составляет 1000$</p>
</div> .....';

echo preg_replace_callback('/\d+\$/', function($m) use($usd) {
    return round($m[0]*$usd) . ' ₽';
}, $s);


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