22.11.2015, 18:12
|
Интересующийся
|
|
Регистрация: 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.11.2015, 18:18
|
Профессор
|
|
Регистрация: 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-портянки, которая совсем не нужна. Сервер уже должен возвращать готовый курс требуемой валюты.
|
|
22.11.2015, 18:23
|
Интересующийся
|
|
Регистрация: 22.11.2015
Сообщений: 19
|
|
Сообщение от laimas
|
Вот на эту строку
$curs = $client->GetCursOnDate(["On_date"=>date('Y-m-d', strtotime('now -1 day'))]);
надо полагать? Причина в том, что у вас древняя версия РНР, а начиная с версии 5.4 массивы можно объявлять так же просто как и в JS, то есть не
array(...), а [...]
Замените квадратные скобки на круглые и объявите массив.
Вы ее не выводите, вы ее еще только пытаетесь получить из xml-портянки, которая совсем не нужна. Сервер уже должен возвращать готовый курс требуемой валюты.
|
На денвере тестирую.
Кароче как я понял проще забить на эту идею. Не совсем догоняю ваших рекомендаций
|
|
22.11.2015, 18:33
|
Интересующийся
|
|
Регистрация: 22.11.2015
Сообщений: 19
|
|
Проблема еще актуальна, возможно кто то подскажет
|
|
22.11.2015, 18:40
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Денвер давно пора в помойку выбросить, он умер, есть куда более лучший локальный сервер. Более того, писать и проверять код нужно не Денвером, а под те версии ПО, которые будут использоваться на реальном сервере.
А что не понятного? Могу в виде сказки разъяснить - сказочница Арина Родионовна рассказывает серверу сказку раз в день, на ночь, и сервер знает чем оканчивается сказка. Детишки клиенты же постоянно спрашивают сервер чем сказка заканчивается, но он вместо концовки рассказывает заново всю сказку. Есть в этой сказке логика?
Вот так и у вас с получением валюты - вы заставляете клиентов опрашивающих сервер постоянно, постоянно же заниматься не нужным.
Что касается невозможности получения значения уже на клиенте по запросу, то не вникая в ваш код, надеюсь вы понимаете, что ajax запрос асинхронный, а значит и считать нужно в его контексте. Ну и самый днешово-сердитый способ, это сразу вывод всех переменных так или иначе требуемых клиентом.
|
|
22.11.2015, 18:42
|
Интересующийся
|
|
Регистрация: 22.11.2015
Сообщений: 19
|
|
Спасибо за ссылочку. Сейчас поставлю, попробую запустить скрипт
|
|
22.11.2015, 19:08
|
Интересующийся
|
|
Регистрация: 22.11.2015
Сообщений: 19
|
|
laimas,
Вставил код в страницу, вписал в формулу переменную, которая судя по документации ЦБ выдает курс
S = (Pbum + Ppec + Potd)*Vcurs;
Но эффект тот же, т.е не какого. Куда скрипт должен сохранять полученное число то?
Последний раз редактировалось Becass, 22.11.2015 в 19:14.
|
|
22.11.2015, 19:32
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Знаете что такое cron? Если установили Open Server, то в нем он есть - в настройках его можно задать любую задачу выполняемую по расписанию, тоже самое делается и на сервере - хостер предлагает такую услугу, планировщик задач.
Ну думайте в конце концов. Вас же не динамика курса валют интересует, а установленный курс причем одной валюты. А кроме этого курса всегда будет то, что необходимо как значения конфигурации, и многое из них выгодно хранить не в файле конфигурации в виде переменных, а в базе, так как они могут изменяться во времени.
Значит планировщик задач получая по расписанию в ночь на следующий день курс валюты за прошедший день записывает его в базу.
Клиент запрашивает, сервер получает курс из базы возвращая его клиенту. Но если запрос клиента асинхронный, то либо расчет в контексте запроса должен быть, либо callback или promise. Если это для вас заоблачно, отдавайте клиенту переменные сразу гарантированно:
<html>
<head>
....
</head>
<body>
.....
<script>
var eur = <?=$eur?>; //$eur полученный из базы курс сохраненный планировщиком задач
</script>
</body>
<html>
|
|
22.11.2015, 19:36
|
Интересующийся
|
|
Регистрация: 22.11.2015
Сообщений: 19
|
|
laimas,
т.е надо создать базу и в нее посылать курс который получает скрипт который вы написали выше?
Только мне не нужна работа с базой. Мне надо только JS
|
|
22.11.2015, 19:39
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Что значит сразу создавать базу? А где же у вас храниться основной контент сайта? Надо полагать в базе, если сайт динамический, а значит база уже существует, и нужно только создать таблицу в ней, которая и будет хранить в себе все конфигурационные переменные подверженные изменениям во времени или же изменяемые оперативно. В эту таблицу и должен писать курс валюты планировщик задач.
Если и с этим проблемы, пишите для начала хотя бы в файл, но разберитесь в конце концов с тем что такое курс, как его получать и использовать.
|
|
|
|