Javascript.RU

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

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

Парсер валюты написал

Код:
<?php
$today = date("d/m/Y");
 $fp = fopen('cb.xml', 'w');
 $ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
      'http://www.cbr.ru/scripts/XML_daily.asp?date_req='.$today);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_exec($ch);
fclose($fp);
curl_close ($ch);
?>
Получаю нужный курс

<script src="http://code.jquery.com/jquery-latest.js";></script>
	<SCRIPT>
$(document).ready(function () {
 $.ajax({
 type: "GET",
 async : false,
 url: "cb.xml",
 dataType: "xml",
 success: XmlKurs
 });
function XmlKurs (xml) {
$(xml).find("Valute").each(function(){
if($(this).attr('ID')=='R01239') {
p=$(this).find("Value").text();
$("p").append(document.getElementById('tcena').value()*$(this).find("Value"));

 }
 });
}
 });
</script>


Есть формула

S = (Pbum + Ppec + Potd)*Euro;


Переменная Euro должна получаться автоматом из парсера


Объявляю функцию

var Euro = new function () {
		$(document).ready(function () {
 $.ajax({
 type: "GET",
 async : false,
 url: "cb.xml",
 dataType: "xml",
 success: XmlKurs
 });
function XmlKurs (xml) {
$(xml).find("Valute").each(function(){
if($(this).attr('ID')=='R01239') {
d=$(this).find("Value").text();
$("p").append(document.getElementById('Euro').value()*$(this).find("Value"));
 }
 });
}
 });

		}


-В итоге получаю ответ на расчет-
Общая стоимость -= Na руб.
Стоимость 1 экземпляра = Na руб.


Вопрос, что я не так делаю и как подставить число из функции в формулу?

Последний раз редактировалось Becass, 22.11.2015 в 16:35.
Ответить с цитированием
  #2 (permalink)  
Старый 22.11.2015, 16:47
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

Сообщение от Becass
13
d=$(this).find("Value").text();
здесь точно получаете цифру а не строку?
Ответить с цитированием
  #3 (permalink)  
Старый 22.11.2015, 16:49
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

Becass,
игнорируйте комментарий)
Ответить с цитированием
  #4 (permalink)  
Старый 22.11.2015, 16:49
Интересующийся
Отправить личное сообщение для Becass Посмотреть профиль Найти все сообщения от Becass
 
Регистрация: 22.11.2015
Сообщений: 19

Сообщение от Mess4me Посмотреть сообщение
здесь точно получаете цифру а не строку?
Не уверен, пробовал убирать .text

d=$(this).find("Value");


Проблемы не решает

Последний раз редактировалось Becass, 22.11.2015 в 17:29.
Ответить с цитированием
  #5 (permalink)  
Старый 22.11.2015, 16:51
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

Becass,
а XML файл можно сюда?
Ответить с цитированием
  #6 (permalink)  
Старый 22.11.2015, 16:52
Интересующийся
Отправить личное сообщение для Becass Посмотреть профиль Найти все сообщения от Becass
 
Регистрация: 22.11.2015
Сообщений: 19

<?xml version="1.0" encoding="windows-1251" ?>
<ValCurs Date="21/11/2015" name="Foreign Currency Market">
<Valute ID="R01010">
	<NumCode>036</NumCode>
	<CharCode>AUD</CharCode>
	<Nominal>1</Nominal>
	<Name>Австралийский доллар</Name>
	<Value>46,6590</Value>
</Valute>
<Valute ID="R01020A">
	<NumCode>944</NumCode>
	<CharCode>AZN</CharCode>
	<Nominal>1</Nominal>
	<Name>Азербайджанский манат</Name>
	<Value>61,9791</Value>
</Valute>
<Valute ID="R01035">
	<NumCode>826</NumCode>
	<CharCode>GBP</CharCode>
	<Nominal>1</Nominal>
	<Name>Фунт стерлингов Соединенного королевства</Name>
	<Value>99,0718</Value>
</Valute>
<Valute ID="R01060">
	<NumCode>051</NumCode>
	<CharCode>AMD</CharCode>
	<Nominal>100</Nominal>
	<Name>Армянских драмов</Name>
	<Value>13,4635</Value>
</Valute>
<Valute ID="R01090">
	<NumCode>974</NumCode>
	<CharCode>BYR</CharCode>
	<Nominal>10000</Nominal>
	<Name>Белорусских рублей</Name>
	<Value>36,1680</Value>
</Valute>
<Valute ID="R01100">
	<NumCode>975</NumCode>
	<CharCode>BGN</CharCode>
	<Nominal>1</Nominal>
	<Name>Болгарский лев</Name>
	<Value>35,3944</Value>
</Valute>
<Valute ID="R01115">
	<NumCode>986</NumCode>
	<CharCode>BRL</CharCode>
	<Nominal>1</Nominal>
	<Name>Бразильский реал</Name>
	<Value>17,2428</Value>
</Valute>
<Valute ID="R01135">
	<NumCode>348</NumCode>
	<CharCode>HUF</CharCode>
	<Nominal>100</Nominal>
	<Name>Венгерских форинтов</Name>
	<Value>22,3334</Value>
</Valute>
<Valute ID="R01215">
	<NumCode>208</NumCode>
	<CharCode>DKK</CharCode>
	<Nominal>10</Nominal>
	<Name>Датских крон</Name>
	<Value>92,8161</Value>
</Valute>
<Valute ID="R01235">
	<NumCode>840</NumCode>
	<CharCode>USD</CharCode>
	<Nominal>1</Nominal>
	<Name>Доллар США</Name>
	<Value>64,8673</Value>
</Valute>
<Valute ID="R01239">
	<NumCode>978</NumCode>
	<CharCode>EUR</CharCode>
	<Nominal>1</Nominal>
	<Name>Евро</Name>
	<Value>69,3886</Value>
</Valute>
<Valute ID="R01270">
	<NumCode>356</NumCode>
	<CharCode>INR</CharCode>
	<Nominal>100</Nominal>
	<Name>Индийских рупий</Name>
	<Value>97,9499</Value>
</Valute>
<Valute ID="R01335">
	<NumCode>398</NumCode>
	<CharCode>KZT</CharCode>
	<Nominal>100</Nominal>
	<Name>Казахстанских тенге</Name>
	<Value>21,1054</Value>
</Valute>
<Valute ID="R01350">
	<NumCode>124</NumCode>
	<CharCode>CAD</CharCode>
	<Nominal>1</Nominal>
	<Name>Канадский доллар</Name>
	<Value>48,6699</Value>
</Valute>
<Valute ID="R01370">
	<NumCode>417</NumCode>
	<CharCode>KGS</CharCode>
	<Nominal>100</Nominal>
	<Name>Киргизских сомов</Name>
	<Value>93,7321</Value>
</Valute>
<Valute ID="R01375">
	<NumCode>156</NumCode>
	<CharCode>CNY</CharCode>
	<Nominal>1</Nominal>
	<Name>Китайский юань</Name>
	<Value>10,1600</Value>
</Valute>
<Valute ID="R01500">
	<NumCode>498</NumCode>
	<CharCode>MDL</CharCode>
	<Nominal>10</Nominal>
	<Name>Молдавских леев</Name>
	<Value>32,4093</Value>
</Valute>
<Valute ID="R01535">
	<NumCode>578</NumCode>
	<CharCode>NOK</CharCode>
	<Nominal>10</Nominal>
	<Name>Норвежских крон</Name>
	<Value>75,1544</Value>
</Valute>
<Valute ID="R01565">
	<NumCode>985</NumCode>
	<CharCode>PLN</CharCode>
	<Nominal>1</Nominal>
	<Name>Польский злотый</Name>
	<Value>16,3024</Value>
</Valute>
<Valute ID="R01585F">
	<NumCode>946</NumCode>
	<CharCode>RON</CharCode>
	<Nominal>1</Nominal>
	<Name>Румынский лей</Name>
	<Value>15,5882</Value>
</Valute>
<Valute ID="R01589">
	<NumCode>960</NumCode>
	<CharCode>XDR</CharCode>
	<Nominal>1</Nominal>
	<Name>СДР (специальные права заимствования)</Name>
	<Value>89,5733</Value>
</Valute>
<Valute ID="R01625">
	<NumCode>702</NumCode>
	<CharCode>SGD</CharCode>
	<Nominal>1</Nominal>
	<Name>Сингапурский доллар</Name>
	<Value>45,9173</Value>
</Valute>
<Valute ID="R01670">
	<NumCode>972</NumCode>
	<CharCode>TJS</CharCode>
	<Nominal>1</Nominal>
	<Name>Таджикский сомони</Name>
	<Value>10,0914</Value>
</Valute>
<Valute ID="R01700J">
	<NumCode>949</NumCode>
	<CharCode>TRY</CharCode>
	<Nominal>1</Nominal>
	<Name>Турецкая лира</Name>
	<Value>22,8045</Value>
</Valute>
<Valute ID="R01710A">
	<NumCode>934</NumCode>
	<CharCode>TMT</CharCode>
	<Nominal>1</Nominal>
	<Name>Новый туркменский манат</Name>
	<Value>18,5335</Value>
</Valute>
<Valute ID="R01717">
	<NumCode>860</NumCode>
	<CharCode>UZS</CharCode>
	<Nominal>1000</Nominal>
	<Name>Узбекских сумов</Name>
	<Value>24,0695</Value>
</Valute>
<Valute ID="R01720">
	<NumCode>980</NumCode>
	<CharCode>UAH</CharCode>
	<Nominal>10</Nominal>
	<Name>Украинских гривен</Name>
	<Value>27,1411</Value>
</Valute>
<Valute ID="R01760">
	<NumCode>203</NumCode>
	<CharCode>CZK</CharCode>
	<Nominal>10</Nominal>
	<Name>Чешских крон</Name>
	<Value>25,6160</Value>
</Valute>
<Valute ID="R01770">
	<NumCode>752</NumCode>
	<CharCode>SEK</CharCode>
	<Nominal>10</Nominal>
	<Name>Шведских крон</Name>
	<Value>74,4634</Value>
</Valute>
<Valute ID="R01775">
	<NumCode>756</NumCode>
	<CharCode>CHF</CharCode>
	<Nominal>1</Nominal>
	<Name>Швейцарский франк</Name>
	<Value>63,8206</Value>
</Valute>
<Valute ID="R01810">
	<NumCode>710</NumCode>
	<CharCode>ZAR</CharCode>
	<Nominal>10</Nominal>
	<Name>Южноафриканских рэндов</Name>
	<Value>46,3835</Value>
</Valute>
<Valute ID="R01815">
	<NumCode>410</NumCode>
	<CharCode>KRW</CharCode>
	<Nominal>1000</Nominal>
	<Name>Вон Республики Корея</Name>
	<Value>56,1138</Value>
</Valute>
<Valute ID="R01820">
	<NumCode>392</NumCode>
	<CharCode>JPY</CharCode>
	<Nominal>100</Nominal>
	<Name>Японских иен</Name>
	<Value>52,7527</Value>
</Valute>
</ValCurs>


Пробовал менять
<Valute ID="R01239">
	<NumCode>978</NumCode>
	<CharCode>EUR</CharCode>
	<Nominal>1</Nominal>
	<Name>Евро</Name>
	<Value>69,3886</Value>
</Valute>


На
<Valute ID="R01239">
	<NumCode>978</NumCode>
	<CharCode>EUR</CharCode>
	<Nominal>1</Nominal>
	<Name>Евро</Name>
	[COLOR="Lime"]<Value>69</Value>[/COLOR]
</Valute>


Думал "давится" запятой, но нет
Ответить с цитированием
  #7 (permalink)  
Старый 22.11.2015, 17:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А почему за курсом валют нужно постоянно обращаться к ЦБ, причем при каждом запросе клиентов?
Ответить с цитированием
  #8 (permalink)  
Старый 22.11.2015, 17:08
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

Сообщение от Becass
14
p=$(this).find("Value").text();
15
$("p").append(document.getElementById('tcena').val ue()*$(this).find("Value"));
а что эти строки должны сделать?
Ответить с цитированием
  #9 (permalink)  
Старый 22.11.2015, 17:10
Интересующийся
Отправить личное сообщение для Becass Посмотреть профиль Найти все сообщения от Becass
 
Регистрация: 22.11.2015
Сообщений: 19

Сообщение от laimas Посмотреть сообщение
А почему за курсом валют нужно постоянно обращаться к ЦБ, причем при каждом запросе клиентов?
Cкрипт для расчета стоимости заказа для типографии, все расчеты идут в Евро.
Ответить с цитированием
  #10 (permalink)  
Старый 22.11.2015, 17:11
Интересующийся
Отправить личное сообщение для Becass Посмотреть профиль Найти все сообщения от Becass
 
Регистрация: 22.11.2015
Сообщений: 19

Сообщение от Mess4me Посмотреть сообщение
а что эти строки должны сделать?
Гуглил по своей проблеме, в одной из тем форума был вариант вставить эту строку как запрет вывода текста и вывод конкретного числа
http://www.cyberforum.ru/php-beginne...ad1494550.html
вот отсюда

Последний раз редактировалось Becass, 22.11.2015 в 17:13.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
посылка переменной kent0026 jQuery 5 04.01.2014 17:34
Как значение переменной вставить в имя переменной? jsgogo Общие вопросы Javascript 3 02.06.2013 12:11
вставка переменной в функцию аяксом dmitro AJAX и COMET 9 15.03.2012 10:40
Вставка переменной в фильтр nikolayseo Общие вопросы Javascript 5 04.02.2012 20:53
Вставка переменной в animate() Freakmeister jQuery 1 06.04.2011 21:45