Javascript.RU

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

Сообщение от laimas Посмотреть сообщение
А слабо запустить код мной показанный и увидеть что возвращается курс нужной валюты? Используйте полученное значение, какая проблема? Тоже самое (коли и у вас планировщиком раз в сутки получение курса) вы могли бы получить из xml курс евро, а при запросах клиента возвращать его, или же сразу в виде переменной в подключаемый JS поместить, или...
Выдает ошибку
Parse error: syntax error, unexpected '[', expecting ')' in Z:\home\calc\www\calc.php on line 3


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

Вот на эту строку

$curs = $client->GetCursOnDate(["On_date"=>date('Y-m-d', strtotime('now -1 day'))]);

надо полагать? Причина в том, что у вас древняя версия РНР, а начиная с версии 5.4 массивы можно объявлять так же просто как и в JS, то есть не

array(...), а [...]

Замените квадратные скобки на круглые и объявите массив.

Сообщение от Becass
Как раз эту переменную я и не могу в JS вывести, обозначить ее
Вы ее не выводите, вы ее еще только пытаетесь получить из xml-портянки, которая совсем не нужна. Сервер уже должен возвращать готовый курс требуемой валюты.
Ответить с цитированием
  #23 (permalink)  
Старый 22.11.2015, 18:23
Интересующийся
Отправить личное сообщение для Becass Посмотреть профиль Найти все сообщения от Becass
 
Регистрация: 22.11.2015
Сообщений: 19

Сообщение от laimas Посмотреть сообщение
Вот на эту строку

$curs = $client->GetCursOnDate(["On_date"=>date('Y-m-d', strtotime('now -1 day'))]);

надо полагать? Причина в том, что у вас древняя версия РНР, а начиная с версии 5.4 массивы можно объявлять так же просто как и в JS, то есть не

array(...), а [...]

Замените квадратные скобки на круглые и объявите массив.



Вы ее не выводите, вы ее еще только пытаетесь получить из xml-портянки, которая совсем не нужна. Сервер уже должен возвращать готовый курс требуемой валюты.
На денвере тестирую.
Кароче как я понял проще забить на эту идею. Не совсем догоняю ваших рекомендаций
Ответить с цитированием
  #24 (permalink)  
Старый 22.11.2015, 18:33
Интересующийся
Отправить личное сообщение для Becass Посмотреть профиль Найти все сообщения от Becass
 
Регистрация: 22.11.2015
Сообщений: 19

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

Денвер давно пора в помойку выбросить, он умер, есть куда более лучший локальный сервер. Более того, писать и проверять код нужно не Денвером, а под те версии ПО, которые будут использоваться на реальном сервере.

А что не понятного? Могу в виде сказки разъяснить - сказочница Арина Родионовна рассказывает серверу сказку раз в день, на ночь, и сервер знает чем оканчивается сказка. Детишки клиенты же постоянно спрашивают сервер чем сказка заканчивается, но он вместо концовки рассказывает заново всю сказку. Есть в этой сказке логика?

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

Что касается невозможности получения значения уже на клиенте по запросу, то не вникая в ваш код, надеюсь вы понимаете, что ajax запрос асинхронный, а значит и считать нужно в его контексте. Ну и самый днешово-сердитый способ, это сразу вывод всех переменных так или иначе требуемых клиентом.
Ответить с цитированием
  #26 (permalink)  
Старый 22.11.2015, 18:42
Интересующийся
Отправить личное сообщение для Becass Посмотреть профиль Найти все сообщения от Becass
 
Регистрация: 22.11.2015
Сообщений: 19

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

laimas,
Вставил код в страницу, вписал в формулу переменную, которая судя по документации ЦБ выдает курс
S = (Pbum + Ppec + Potd)*Vcurs;


Но эффект тот же, т.е не какого. Куда скрипт должен сохранять полученное число то?

Последний раз редактировалось Becass, 22.11.2015 в 19:14.
Ответить с цитированием
  #28 (permalink)  
Старый 22.11.2015, 19:32
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Знаете что такое cron? Если установили Open Server, то в нем он есть - в настройках его можно задать любую задачу выполняемую по расписанию, тоже самое делается и на сервере - хостер предлагает такую услугу, планировщик задач.
Ну думайте в конце концов. Вас же не динамика курса валют интересует, а установленный курс причем одной валюты. А кроме этого курса всегда будет то, что необходимо как значения конфигурации, и многое из них выгодно хранить не в файле конфигурации в виде переменных, а в базе, так как они могут изменяться во времени.

Значит планировщик задач получая по расписанию в ночь на следующий день курс валюты за прошедший день записывает его в базу.

Клиент запрашивает, сервер получает курс из базы возвращая его клиенту. Но если запрос клиента асинхронный, то либо расчет в контексте запроса должен быть, либо callback или promise. Если это для вас заоблачно, отдавайте клиенту переменные сразу гарантированно:

<html>
<head>
....
</head>
<body>
.....
<script>
var eur = <?=$eur?>; //$eur полученный из базы курс сохраненный планировщиком задач
</script>
</body>
<html>
Ответить с цитированием
  #29 (permalink)  
Старый 22.11.2015, 19:36
Интересующийся
Отправить личное сообщение для Becass Посмотреть профиль Найти все сообщения от Becass
 
Регистрация: 22.11.2015
Сообщений: 19

laimas,
т.е надо создать базу и в нее посылать курс который получает скрипт который вы написали выше?
Только мне не нужна работа с базой. Мне надо только JS
Ответить с цитированием
  #30 (permalink)  
Старый 22.11.2015, 19:39
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Что значит сразу создавать базу? А где же у вас храниться основной контент сайта? Надо полагать в базе, если сайт динамический, а значит база уже существует, и нужно только создать таблицу в ней, которая и будет хранить в себе все конфигурационные переменные подверженные изменениям во времени или же изменяемые оперативно. В эту таблицу и должен писать курс валюты планировщик задач.

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



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
посылка переменной 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