Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/145: Рейтинг темы: голосов - 145, средняя оценка - 4.57
23 / 23 / 11
Регистрация: 04.12.2012
Сообщений: 579
1

Конвертер валют

20.02.2015, 18:03. Просмотров 29093. Ответов 16
Метки нет (Все метки)


Здравствуйте. Сделал конвертер валют, но теперь необходимо, чтобы курс валют загружался с какого-нибудь сайта. Нашел один более менее понятный пример, но он на php, а нужен только JavaScript.

Мой конвертер:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<html>
    <head>
    <head/>
    <body>
        <form>
            <label>Выберите исходную валюту:</label>
            <select name="from" id="from">
                <option value="0" selected="selected">Доллар США</option>
                <option value="1">Евро</option>
                <option value="2">Рубль</option>
            </select>
            <br/>
            <br/>
            <label>Введите сумму: </label>
            <input name="cash" id="cash" class="is" type="text"/>
            <br/>
            <br/>
            <label>Выберите расчетную валюту: </label>
            <select name="to" id="to">
                <option value="0">Доллар США</option>
                <option value="1" selected="selected">Евро</option>
                <option value="2">Рубль</option>
            </select>
            <br/>
            <br/>
            <input type=button value="Вычислить" onclick='GiveResult();'>
            <br/>
            <br/>
            <label><span id="result" class="result"></span></label>
        </form>
        <script type="text/javascript">
            c = new Array();
            n = new Array();
            c[0] = 1;
            n[0] = "USD";
            c[1] = 0.75;
            n[1] = "EUR";
            c[2] = 63.01;
            n[2] = "RUB";
     
            function GiveResult()
            {
                var res, vfrom, vto, vcash;
                vcash = document.getElementById("cash").value;
                vfrom = document.getElementById("from").value;
                vcash = vcash.replace(',', '\.');
                vcash = vcash.replace(' ', '');
                vcash = vcash.replace(' ', '');
                vto = document.getElementById("to").value;
                res = c[vto] * vcash / c[vfrom], 2;
 
                res = res.toFixed(2);
                res = res.toString();
                res = res.replace('\.', ',');
                res = "<span class='result'> Результат перевода: " + res + "</span>&nbsp;" + n[vto];
            
                document.getElementById("result").innerHTML = res;
            }
        </script>
    </body>
</html>
Код, который я нашел на php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$date_today = date("m/d/Y"); // вычисляем сегодняшнюю дату
$xml_kurs = 'http://www.nbrb.by/Services/XmlExRates.aspx?ondate='.$date_today;
$xml = simplexml_load_file($xml_kurs);
 
foreach ($xml->Currency as $Currency) {
    switch((string) $Currency['Id']) { // Возвращает атрибуты как элементы массива
    case '224': //UAH
        $uah = $Currency->Rate;
        break;
    case '145': //USD
        $usd = $Currency->Rate;
        break;
    case '19':  //EUR
        $eur = $Currency->Rate;
        break;
    case '219': //PLN
        $pln = $Currency->Rate;
        break;
    case '190': //RUB
        $rub = $Currency->Rate;
        break; 
    case '171': //CZK
        $czk = $Currency->Rate;
        break;  
    case '177': //LTL
        $ltl = $Currency->Rate;
        break;    
 
    }
}
Подскажите, можно ли сделать что-то подобное, используя JavaScript или просто другой способ загрузки валют.

Добавлено через 23 часа 14 минут
Можно ли такое реализовать на чистом JavaScript (без jQuery)?

Добавлено через 18 часов 42 минуты
Никто не сталкивался с таким заданием?

Добавлено через 6 часов 38 минут
Такое вообще возможно на JavaScript сделать?

Добавлено через 12 часов 33 минуты
Решение так и не нашел

Добавлено через 9 часов 9 минут
апну тему в последний раз
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2015, 18:03
Ответы с готовыми решениями:

Конвертер валют
Добрый вечер! нужен конвертер валют в реальном времени, чтоб каждый час, допустим, обновлялся....

Написать конвертер валют
Доброго времени суток. Есть задача универа, написать конвертер валют. То есть пользователь вводит...

Сделать конвертер валют
Здравствуйте. Мне нужно создать конвертер валют, работа которого такая же, как у этого:...

Javascrypt курсов валют
ДОБРОГО ВРЕМЕНИ СУТОК! Я ПО ПОВОДУ javascrypt! Есть рабочий код вывода курсов валют на для...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы Fullstack-разработчиков на JavaScript‌
16
tribal dance
167 / 155 / 36
Регистрация: 03.09.2009
Сообщений: 820
Записей в блоге: 17
20.02.2015, 18:19 2
Цитата Сообщение от Dmitrin Посмотреть сообщение
Можно ли такое реализовать на чистом JavaScript (без jQuery)?
нет.
***
Kalabuni, разберитесь с финансовым воротилой, я вас умоляю.
1
23 / 23 / 11
Регистрация: 04.12.2012
Сообщений: 579
24.02.2015, 18:49  [ТС] 3
а с jQuery можно ли такое сделать?
0
23 / 23 / 11
Регистрация: 04.12.2012
Сообщений: 579
28.02.2015, 20:53  [ТС] 4
У кого нибудь есть готовый код для решения этой задачи?
0
23 / 23 / 11
Регистрация: 04.12.2012
Сообщений: 579
02.03.2015, 12:29  [ТС] 5
Задачу пока не решил
0
Эксперт PHP
4401 / 3278 / 1068
Регистрация: 06.01.2011
Сообщений: 9,452
03.03.2015, 11:04 6
Лучший ответ Сообщение было отмечено Dmitrin как решение

Решение

Странно, что никто не смог помочь, задача-то простая...
Dmitrin, только с ипользованием jQuery:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<html>
    <head>
        <!-- Подключаем JQUERY -->
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
        <script type="text/javascript">
            // Для курсов валют
            rates = {};
            
            // При загрузке документа
            $(document).ready(function(){
                // Загружаем курсы валют
                $.ajax({
                    // Откуда загружаем курсы валют
                    url: 'http://jsonrates.com/get/?base=USD',
                    // Запрос к стороннему домену
                    crossDomain: true,
                    dataType: 'jsonp',
                    success: function(data){
                        rates = data.rates;
                    },
                    error: function(){
                        alert('Не удалось загрузить курсы валют. Перевод не будет работать.');
                    }
                });
                
                // При клике на кнопку "Вычислить"
                $('#calculate').click(function(){
                    var result, vfrom, vto, vcash;
                    
                    // Получаем сумму, которую нужно перевести
                    vcash = $('#cash').val();
                    vfrom = $('#from').val();
                    vto   = $('#to').val();                
 
                    // Заменяем в значении переводимой валюты одни символы на другие
                    vcash = vcash.replace(',', '\.')
                                 .replace(' ', '')
                                 .replace(' ', '');
                    
                    // Вычисляем результат
                    result = rates[vto] * vcash / rates[vfrom];
                    
                    // Переводим
                    result = result.toFixed(2)
                                   .toString()
                                   .replace('\.', ',');
 
                    result = '<span class="result">Результат перевода: ' + result + '&nbsp;' + vto + '</span>';
 
                    // Выводим результат
                    $('#result').html( result );
                });
            });
        </script>
    <head/>
    <body>
        <form>
            <label>Выберите исходную валюту:</label>
            <select name="from" id="from">
                <option value="USD" selected="selected">Доллар США</option>
                <option value="EUR">Евро</option>
                <option value="RUB">Рубль</option>
            </select>
            <br/>
            <br/>
            <label>Введите сумму: </label>
            <input name="cash" id="cash" class="is" type="text"/>
            <br/>
            <br/>
            <label>Выберите расчетную валюту: </label>
            <select name="to" id="to">
                <option value="USD">Доллар США</option>
                <option value="EUR" selected="selected">Евро</option>
                <option value="RUB">Рубль</option>
            </select>
            <br/>
            <br/>
            <input type=button value="Вычислить" id="calculate">
            <br/>
            <br/>
            <label><span id="result" class="result"></span></label>
        </form>
    </body>
</html>
1
23 / 23 / 11
Регистрация: 04.12.2012
Сообщений: 579
03.03.2015, 15:52  [ТС] 7
К сожалению, Ваш код не работает (по крайней мере при полном копировании и вставке) - попробую разобраться, что к чему) Спасибо большое)
0
супермизантроп
Эксперт JS
3862 / 2936 / 685
Регистрация: 18.04.2012
Сообщений: 8,540
03.03.2015, 15:59 8
Цитата Сообщение от lyod Посмотреть сообщение
Странно, что никто не смог помочь, задача-то простая...
странно, что кто-то пытается помочь, задача-то в принципе нерешаемая...
0
Эксперт PHP
4401 / 3278 / 1068
Регистрация: 06.01.2011
Сообщений: 9,452
03.03.2015, 18:46 9
Цитата Сообщение от kalabuni Посмотреть сообщение
задача-то в принципе нерешаемая...
Вы пробовали запустить этот код? Или Вы не слышали про crossdomain ajax?
Цитата Сообщение от Dmitrin Посмотреть сообщение
Ваш код не работает
Код 100% рабочий.
P.S. Проверял в firefox.
1
23 / 23 / 11
Регистрация: 04.12.2012
Сообщений: 579
03.03.2015, 19:02  [ТС] 10
lyod, мой косяк, виноват) Все работает)) Спасибо еще раз)
0
Эксперт PHP
4401 / 3278 / 1068
Регистрация: 06.01.2011
Сообщений: 9,452
04.03.2015, 07:24 11
Цитата Сообщение от Dmitrin Посмотреть сообщение
Спасибо еще раз)
Да не за что. Но я бы всё-таки рекомендовал проверить в разных браузерах разных версий (насколько это возможно), чтобы удостовериться, что код корректно работает во всех браузерах. Хотя jQuery сама по себе кроссбраузерная библиотека, там всё продумано за нас .

Добавлено через 12 часов 17 минут

Не по теме:

kalabuni, Вы так и не объяснили, почему задача не решаемая... Я бы очень хотел услышать аргументы в пользу Вашего высказывания, чтобы в будущем не решать нерешаемые задачи. :)

0
супермизантроп
Эксперт JS
3862 / 2936 / 685
Регистрация: 18.04.2012
Сообщений: 8,540
04.03.2015, 11:25 12
lyod, расскажите, пожалуйста, поподробнее про опцию crossDomain, которая присутствует в строке #16 вашего кода
а именно:
-- где можно ознакомиться с формальным описанием этой опции? (на ресурсе http://jquery-docs.ru/ я таковой опции не нашёл)
-- что произойдёт, если строку #16 из вашего кода бесследно исключить? (здесь порекомендую вам сначала попробовать эту строку исключить из вашего кода, и только потом - отвечать на заданный вопрос)
0
Эксперт PHP
4401 / 3278 / 1068
Регистрация: 06.01.2011
Сообщений: 9,452
04.03.2015, 11:38 13
Цитата Сообщение от kalabuni Посмотреть сообщение
где можно ознакомиться с формальным описанием этой опции?
На официальном сайте библиотеки jQuery, вот ссылка на документацию:
http://api.jquery.com/jQuery.ajax/
Цитата Сообщение от kalabuni Посмотреть сообщение
что произойдёт, если строку #16 из вашего кода бесследно исключить? (здесь порекомендую вам сначала попробовать эту строку исключить, и только потом - отвечать на заданный вопрос)
Абсолютно ничего, я просто пробовал и то и другое, и забыл эту настройку убрать.
0
0 / 0 / 1
Регистрация: 07.03.2018
Сообщений: 3
12.03.2018, 14:03 14
Подскажите, пожалуста, в чем был косяк, а то у меня тоже код не работает.
0
28 / 22 / 15
Регистрация: 29.11.2017
Сообщений: 75
12.03.2018, 15:02 15
Цитата Сообщение от KarineD Посмотреть сообщение
Подскажите, пожалуста, в чем был косяк, а то у меня тоже код не работает.
Быть может, это хоть как-то поможет вам
0
Эксперт PHP
4401 / 3278 / 1068
Регистрация: 06.01.2011
Сообщений: 9,452
12.03.2018, 20:03 16
Цитата Сообщение от KarineD Посмотреть сообщение
у меня тоже код не работает
KarineD, по URL http://jsonrates.com/get/?base=USD ошибки выдаются. Прикрыли они лавочку.
Отсюда и у Вас ошибки.
0
Просто любитель
625 / 463 / 120
Регистрация: 20.01.2011
Сообщений: 865
Записей в блоге: 2
12.03.2018, 22:07 17
вариант для запросов
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2018, 22:07

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Вытянуть курсы валют
Есть вот такой скрипт, который вытягивает курсы с сайта Центрального Банка России. Ка его можно...

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

Канкулятора обмена электронных валют
Здравствуйте! Помогите создать копию этой страницы http://obmen-service.com/exchange/calc.php...

Как прибавить % к курсу валют?
Здравствуйте, есть скрит вывода курсов валют, как сделать чтобы он выводился +2%? подскажите,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.