Калькулятор Валют

G
На сайте с 16.12.2008
Offline
17
1850

Приветствую! Имеем скрипт получения курса валют с сайта cbr.ru

<?php 

// Получаем текущие курсы валют в rss-формате с сайта www.cbr.ru
$content = get_content();
// Разбираем содержимое, при помощи регулярных выражений
$pattern = "#<Valute ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i";
preg_match_all($pattern, $content, $out, PREG_SET_ORDER);
$dollar = "";
$euro = "";
foreach($out as $cur)
{
if($cur[2] == 840) $dollar = str_replace(",",".",$cur[4]);
if($cur[2] == 978) $euro = str_replace(",",".",$cur[4]);
}
echo "Доллар - ".$dollar."<br>";
echo "Евро - ".$euro."<br>";
function get_content()
{
// Формируем сегодняшнюю дату
$date = date("d/m/Y");
// Формируем ссылку
$link = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date";
// Загружаем HTML-страницу
$fd = fopen($link, "r");
$text="";
if (!$fd) echo "Запрашиваемая страница не найдена";
else
{
// Чтение содержимого файла в переменную $text
while (!feof ($fd)) $text .= fgets($fd, 4096);
}
// Закрыть открытый файловый дескриптор
fclose ($fd);
return $text;
}
?>

Задача:

1. Сделать Форму ввода числа

2. Веденное Число умножить на курс(Полученный Скирптом Выше) Доллара или Евро (Сделать возможность выбрать Валюту)

3. Вывести Результат

Помогите Организовать данный Скрипт, пожалуйста.

Brand from Amber
На сайте с 18.08.2007
Offline
293
#1
gunos:
1. Сделать Форму ввода числа
2. Веденное Число умножить на курс(Полученный Скирптом Выше) Доллара или Евро (Сделать возможность выбрать Валюту)
3. Вывести Результат

Это даже не "первый класс начальной школы" - это: "детский сад" (!) Если Вы не программист - обратитесь за услугами к профессионалу. Если же хотите программировать - изучите азы! Ну нельзя такие вопросы задавать - чесслово - всё понимаю, сам когда-то мало знал, но подобных глупостей ни когда не писал!

Лучший способ понять что-то самому - объяснить это другому.
G
На сайте с 16.12.2008
Offline
17
#2
Brand from Amber:
Это даже не "первый класс начальной школы" - это: "детский сад" (!) Если Вы не программист - обратитесь за услугами к профессионалу. Если же хотите программировать - изучите азы! Ну нельзя такие вопросы задавать - чесслово - всё понимаю, сам когда-то мало знал, но подобных глупостей ни когда не писал!

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

Если не желаете помочь, проигнорируйте тему, пожалуйста

Brand from Amber
На сайте с 18.08.2007
Offline
293
#3

Помощь это когда:

  • Вы столкнулись с профильной задачей которую не в состоянии решить самостоятельно.
  • Вы перерыли весь интернет в поисках решения данной задачи.
  • Вы нашли какой-либо вариант решения, но он у Вас по каким-либо причинам не работает.
  • Вы исчерпали все прочие возможности для решения Вашей задачи.

...только после этого Вы приходите на форум (в тематический раздел где общаются Ваши коллеги) и выкладываете свою проблему, со словами: "Ребят! Перепробовал все доступные методы - не работает! Помогите разобраться!"... Вот что называется Помощь!

В Вашем же случае Вы даже не хотите разобраться! Вы приходите на форум с формулировкой: "Я не программист, но мне надо - делайте". Это ни как не тянет на просьбу о помощи (в вышеизложенном ИМХО), это, скорее, походит на протянутую руку.

Откуда вас столько - любителей халявы?

G
На сайте с 16.12.2008
Offline
17
#4

Решение:

<?php 

// Получаем текущие курсы валют в rss-формате с сайта www.cbr.ru
$content = get_content();
// Разбираем содержимое, при помощи регулярных выражений
$pattern = "#<Valute ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i";
preg_match_all($pattern, $content, $out, PREG_SET_ORDER);
$dollar = "";
$euro = "";
foreach($out as $cur)
{
if($cur[2] == 840) $dollar = str_replace(",",".",$cur[4]);
if($cur[2] == 978) $euro = str_replace(",",".",$cur[4]);
}
echo "Доллар - ".$dollar."<br>";
echo "Евро - ".$euro."<br>";
function get_content()
{
// Формируем сегодняшнюю дату
$date = date("d/m/Y");
// Формируем ссылку
$link = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date";
// Загружаем HTML-страницу
$fd = fopen($link, "r");
$text="";
if (!$fd) echo "Запрашиваемая страница не найдена";
else
{
// Чтение содержимого файла в переменную $text
while (!feof ($fd)) $text .= fgets($fd, 4096);
}
// Закрыть открытый файловый дескриптор
fclose ($fd);
return $text;
}
?>
<script>
function calculate() {
window.document.getElementById("result").value = window.document.getElementById("convert").value * <?php echo $dollar; ?>;
}
</script>
Сумма: <input type="text" id="convert" onkeyup="calculate()" /><br />
Результат: <input type="text" id="result" />
Brand from Amber
На сайте с 18.08.2007
Offline
293
#5
gunos:
Решение:

Ну вот, теперь конструктив пошёл. Только, если Вы не заметили, то Ваше решение не соответствует Вашим же требованиям =)

Вот так оно правильнее будет

<script> 

var val=<?php echo $dollar; ?>;
function calculate() {
window.document.getElementById("result").value = window.document.getElementById("convert").value * val;
}
</script>
Валюта:
<select onchange="val=this.options[this.selectedIndex].value;calculate()">
<option value="<?php echo $dollar; ?>" selected>USD</option>
<option value="<?php echo $deuro; ?>">EUR</option>
</select><br />
Сумма: <input type="text" id="convert" onkeyup="calculate()" /><br />
Результат: <input type="text" id="result" />
G
На сайте с 16.12.2008
Offline
17
#6

Благодарю, у вас опечатка:

<option value="<?php echo $deuro; ?>">EUR</option>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий