Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.05.2015, 19:40
Профессор
Отправить личное сообщение для ufaclub Посмотреть профиль Найти все сообщения от ufaclub
 
Регистрация: 27.11.2010
Сообщений: 202

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

Может кто подскажет как проще реализовать и есть ли может где готовые аналоги.
Ответить с цитированием
  #2 (permalink)  
Старый 15.05.2015, 20:06
Профессор
Отправить личное сообщение для ufaclub Посмотреть профиль Найти все сообщения от ufaclub
 
Регистрация: 27.11.2010
Сообщений: 202

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


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

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

и в тексте 10000 руб. менялось бы на 200$
Ответить с цитированием
  #3 (permalink)  
Старый 16.05.2015, 05:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от 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; //курс евро

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

Последний раз редактировалось laimas, 16.05.2015 в 07:15.
Ответить с цитированием
  #4 (permalink)  
Старый 16.05.2015, 22:27
Профессор
Отправить личное сообщение для ufaclub Посмотреть профиль Найти все сообщения от ufaclub
 
Регистрация: 27.11.2010
Сообщений: 202

с частью как парсить значение курса я понял. А вот как мне находить в тексте значения сумм в долларах и менять на значение в рублях. по курсу...
Ответить с цитированием
  #5 (permalink)  
Старый 17.05.2015, 03:20
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

В каком тексте?
Ответить с цитированием
  #6 (permalink)  
Старый 17.05.2015, 23:11
Профессор
Отправить личное сообщение для ufaclub Посмотреть профиль Найти все сообщения от ufaclub
 
Регистрация: 27.11.2010
Сообщений: 202

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

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

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

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

Просто как то найти цену в тексте. и загнать ее в переменную и дальше уже заманить на рублевый эквивалент.
Ответить с цитированием
  #7 (permalink)  
Старый 18.05.2015, 02:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Это информационный сайт по бытовой технике или же это магазин? Если это магазин, то почему важная характеристика товаров так неудобно представляется? Если это информационный сайт, в текстах которого нужно проставлять цены по курсу, то почему это не делается на сервере?
Ответить с цитированием
  #8 (permalink)  
Старый 18.05.2015, 11:11
Профессор
Отправить личное сообщение для ufaclub Посмотреть профиль Найти все сообщения от ufaclub
 
Регистрация: 27.11.2010
Сообщений: 202

информационный. просто нужно именно возможность из html кода выдрать значения.
Ответить с цитированием
  #9 (permalink)  
Старый 18.05.2015, 11:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Это только регулярным выражением, можно сразу на стороне сервера при выводе:
$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);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преключатель валют alexmixaylov jQuery 7 21.10.2014 13:10
Конвертер валют с привязкой к гривне animhotep Ваши сайты и скрипты 0 03.08.2014 14:18
Обновление цены в прайсе по курсу валют Olger Общие вопросы Javascript 4 28.02.2014 20:05
Проблема с выводом курса валют bubanay Элементы интерфейса 0 20.12.2013 20:42
Как брать курс валют с другого сайта? vasim Общие вопросы Javascript 6 24.10.2008 11:53