Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вывод курса валют (https://javascript.ru/forum/misc/72548-vyvod-kursa-valyut.html)

spinastr 09.02.2018 05:06

он называется планировщик

spinastr 09.02.2018 05:07

laimas,

Переписать js?

я не понимаю!

laimas 09.02.2018 05:12

Цитата:

Сообщение от spinastr
Это в индексе? Там прописан мой доммен, хостинга.

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

Цитата:

Сообщение от spinastr
Автообнавление скрипта нужно включать самому я ещё невключал

Какого скрипта, current.json? Это не скрипт, а текстовый файл. А если речь о cron, и время запуска задано, значит включить автовыполнение в заданное время.

laimas 09.02.2018 05:17

<script>
$.getJSON("http://domain_1", function(data) {
    //это получение текущей даты
    data.current.date
    //это получение курса текущей даты
    data.current.value
    //это получение стрелочки текущей даты
    data.current.rate
    //это получение предыдущей даты
    data.previous.date
    //это получение курса предыдущей даты
    data.previous.value
    //это получение стрелочки предыдущей даты
    data.previous.rate 
    //а во что это все вставить и как в $('#usd').html(), вам виднее, Действуйте
});
</script>

spinastr 09.02.2018 14:09

laimas,

я уже не спал с ночи, спасибо за помощь я не понимаю как я выучу js за сутки, что делать дальше как написать?

laimas 09.02.2018 14:25

Цитата:

Сообщение от spinastr
что делать дальше как написать?

Покажите html-код виджета, который отображает курс на странице, чтобы было понятно что куда поместить. Я тоже понятия не имею, как надо, и без этого кода ничего ответить не могу.

spinastr 09.02.2018 14:41

laimas,

пришёл ответ из службы поддержки про закрытую папку

будет работать, если из планировщика php вызывать
из браузера - нет

вот что выводит когда захожу, ваша демо запись http://h116641.s08.test-hf.su/ какой виджет у меня нет виджита, мне нужно вывести просто числа

laimas 09.02.2018 15:09

Цитата:

Сообщение от spinastr
какой виджет у меня нет виджита, мне нужно вывести просто числа

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

А коли нет, то и ...

spinastr 09.02.2018 15:22

Тут в начале этой темы, выводилось всё в блок id или class. у меня на сайте обычная панель, <li></li> туда хотел вставить курс доллара примерно $ 56.77 ▲ . отстилизовать через css. это всё я могу. данные брались из json с сотроннего сервера. но там проблемы с датой.

Далее выяснелось что нужен скрипт php который будет брать данные с самого ЦБ РФ. Мне помогли его сделать.

Но я непонимаю он не выводит текущий курс, а показывает демо

И как его вывести в див блок, скриптом это понятно но я не знаю js, уже сутки не спал сижу ничего уже не понимаю.


Подскажите кто может, как далше вывести курс?

spinastr 09.02.2018 15:27

Не пойму почему в джексоне демо написано? как туда вывести данные с банка?

spinastr 09.02.2018 15:37

spinastr,

поместить в <div id="usd"></div>

laimas 09.02.2018 15:52

spinastr,
хотите сайт? Значит начинайте учить основы html/css/js. Здесь форм помощи для тех, кто что-то делает сам и обращается по конкретным вопросам. Для тех кто сам не делает, но просит сделать, для этого на сайте есть раздел Работа.

"поместить в <div id="usd"></div>"? Да не проблема:

$.getJSON("http://domain_1", function(data) {
    $('#usd').html($.map(data, function(e) {
        return e.date + ': ' + e.rate + '$' + e.value
    }).join('<br>'));
});


Так устроит?

spinastr 09.02.2018 16:17

laimas,

демо
{"current":{"date":"8.2.2018","value":56.95,"rate" :"▼"},"previous":{"date":"7.2.2018","value":57.2 2,"rate":"▲"}}


так нужно?
{'current':{'date','value','rate','previous':{'date','value','rate'}}


Так нужно в current.json написать?

spinastr 09.02.2018 16:19

Цитата:

Сообщение от laimas (Сообщение 477411)
spinastr,
хотите сайт? Значит начинайте учить основы html/css/js. Здесь форм помощи для тех, кто что-то делает сам и обращается по конкретным вопросам. Для тех кто сам не делает, но просит сделать, для этого на сайте есть раздел Работа.

"поместить в <div id="usd"></div>"? Да не проблема:

$.getJSON("http://domain_1", function(data) {
    $('#usd').html($.map(data, function(e) {
        return e.date + ': ' + e.rate + '$' + e.value
    }).join('<br>'));
});


Так устроит?

вот тут уже знакомо, вижу блок, а под стрклки как вывод сделать что бы считали повышение или понижение?

spinastr 09.02.2018 16:31

laimas,
или нужно так?

{"current":{"date":"date('j.n.Y')","value":$usd_curr,"rate" :"$usd_curr > $usd_prev ? '▲' : '▼'"},"previous":{"date":"date('j.n.Y', strtotime('-1 day'))","value":$usd_prev,"rate":"$usd_prev > $last ? '▲' : '▼'"}}

spinastr 09.02.2018 16:33

Я пытаюсь делать сам и вникнуть, но не понимаю js.

У меня не так много денег что бы фрилансеров найти, уж простите меня. Я инвалид.

laimas 09.02.2018 16:46

Цитата:

Сообщение от spinastr
Я пытаюсь делать сам и вникнуть, но не понимаю js.

Ну так как могут что-то конкретного посоветовать те, которых вы спрашиваете, если они не знают, что нужно в итоге?

Поэтому и просьба, показать html код того во что это нужно вывести. Есть же какая-то красивая картинка, которая показывает как это будет на странице? А по этой картинке сверстан html-код, который и будет реализовать на странице эту картинку.

Ну ежику же понятно, что просто вывести в 'usd' ну не катит. Наверное же цифры курса как-то выделяются или шрифтом, или начертанием и т.п., стрелки тоже, а это означает, что вся информация не просто в <div id="usd"> помещается, но и помещается в какие-то определенные для них html-элементы. Этим элементам могут быть определены и стили, да еще и по условию.

Значит в <div id="usd"> есть html-код, который и надо показать. Неужели это трудно для понимания?

Может с учетом этого кода потребуется что-то изменить/добавить в ранее предложенном коде.

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

spinastr 09.02.2018 17:00

laimas,

красивая картинка

https://pp.userapi.com/c840222/v8402...Ng2r7Zih4Q.jpg

код блока погоды с анимацией

<li><div class="wow fadeInLeft animated" style="visibility: visible; animation-name: bounceIn;"><a href="pogoda_v_oblasti/0-10" title="Посмотреть погоду на неделю"><span class="lead toggler" id="celsius2"></span> </div></a></li>


Мобильная версия

https://pp.userapi.com/c840222/v8402...0zQxHNZAks.jpg

spinastr 09.02.2018 17:34

laimas,

Так как реальный код курса вывести не пойму?

laimas 09.02.2018 18:01

А причем тут код блока погоды?

В общем так, если так как на картинке отображать курс, то можно это решить, например, посредством пседоэлементов :before/:after. Так как цвет стрелок вверх/вниз разный, то структура json, которую отдает сервер не годится. Выгоднее возвращать признак роста/падения курса.

В файле current.php измените вот эти две строки кода, на указанные:

//было
'rate' => $usd_curr > $usd_prev ? '▲' : '▼'
//заменить на
'rate' => intval($usd_curr > $usd_prev)
//было
'rate' => $usd_prev > $last ? '▲' : '▼'
//заменить на
'rate' => intval($usd_prev > $last)


Добавить в файл стилей следующие правила:

/*общие правила для элементов отображающих курс*/
span[class|=rate] {
    display: block;
    text-align: center;
    padding: 3px 0;
    color: #000;
    font-weight: bold;
}

/*правила для знака доллара*/
span[class|=rate]:before {
    margin-right: 10px;
    content: "$";
}

/*общие правила для стрелок*/
span[class|=rate]:after {
    margin-left: 10px;
}

/*правила для стрелки вверх*/
.rate-1:after {
    content: "▲";
    color: #BC0101;
}

/*правила для стрелки вниз*/
.rate-0:after {
    content: "▼";
    color: #089301;
}


То есть, что будет в качестве стрелок и знака доллара задается в стилях, а какая стрелка будет отображена определяется именем класса, который определяется динамикой курса.

Код блока вывода:

<div id="usd" class="">
    <span id="current" class="rate-0"></span>
    <span id="previous" class="rate-0"></span>
</div>


JS код вывода:

$.getJSON("http://domain_1", function(data) {
    $.each(data, function(k, o) {
        $('#'+k).text(o.value).attr('class', function() {
            return this.className.replace(/\d/, o.rate)    
        })
    })
});


На что нужно заменить http://domain_1, думаю пояснять больше не надо.

spinastr 09.02.2018 18:51

laimas,
Так то что на картинки выводится через ваши скрипты, то есть тот курс это, лкмо текст из Джексона, как в этот фаил вывести реальный курс, а не демо? Сейчас курса вообще нет, только демо текст

laimas 09.02.2018 19:22

Цитата:

Сообщение от spinastr
от курс это, лкмо текст из Джексона, как в этот фаил вывести реальный курс, а не демо?

Я не знаю Джексона и "лкмо" текста. Все что можно было написать я написал.

spinastr 09.02.2018 19:28

laimas,
Спасибо за помощь.

То есть теперь осталось из php перевести в json?

В json будет реальный курс и его через js можно добавить на другой сайт в div?

laimas 09.02.2018 19:42

Цитата:

Сообщение от spinastr
То есть теперь осталось из php перевести в json?

В json из РНР перевести нельзя, и не требуется. Вот эта функция

$.getJSON("адрес РНР сайта"

на "другом сайте" запрашивает курс, и РНР сайт возвращает его в json формате. Этот код на "другом сайте"

$('#usd').html($.map(data, function(e) {
.....

получает данные курса и помещает его в $('#usd').

Пора начинать соображать, ибо вы не понимаете или не хотите начинать понимать вещей, которые обязаны понимать. Я вам уже столько переписал как раз описывая что и куда и как будет работать, нет блин, воз и ныне там. :)

spinastr 09.02.2018 20:24

laimas,
Я понял и все работает!

Там вам прислал скрин сайта и в левом углу цифры и стрелка, это ваш скрипт работает!

Это не я написал.

У меня вопрос как в json передать реальный курс, а не демо текст?

laimas 09.02.2018 20:35

Цитата:

Сообщение от spinastr
как в json передать реальный курс, а не демо текст?

Цитата:

Сообщение от spinastr
Я понял и все работает!

:blink:

Опять все заново? Что значит демо текст?

Курс валют получает и записывает в json файл current.php, который запускается cron по расписанию. Что еще требует пояснения?

spinastr 09.02.2018 21:05

laimas,

Вот вы написали

Приготовьте такой файл (current.json) и поместите его в папку current. Это можно сделать запустив и current.php, но не хочу еще кучи долгих пояснений, поэтому возьмите этот текст как исходный:

{"current":{"date":"8.2.2018","value":56.95,"ra te" :"▼"},"previous":{"date":"7.2.2018","value":5 7.2 2,"rate":"▲"}}

В этом файле сейчас обычный текст?

spinastr 09.02.2018 21:10

Вот сткин с хостинга

https://pp.userapi.com/c824203/v8242...d89TEVvODg.jpg

Как отобразить курс? не пойму, вроде всё верно сделано как вы сказали

spinastr 09.02.2018 21:18

РАЗ ВСЁ ПРИШЛО В ТУПИК!

Может из этого скрипта вытащить данные?

ссылка

И вот ещё скрипт

они все работаю, может из них вытащить?

spinastr 09.02.2018 21:47

laimas,

Опять все заново? Что значит демо текст?

там ваш текст, а не курс, там написано 56, а сейчас 58 доллар!

laimas 09.02.2018 21:53

Цитата:

Сообщение от spinastr
В этом файле сейчас обычный текст?

JSON, это и есть текст, то есть правильно говорят - строковое значение. Только JSON, это не просто текст, а формат, который описывает объекты, массивы, строки и т.п. На клиенте посредством JS он будет преобразован в JS объект, из которого js и будет получать данные?

То есть это не демо, текст, это то что и нужно. Точно также будет выглядеть это строка при записи ее файлом current.php, только даты, курсы и динамика будут изменяться.

Не надо более лезть в этот файл и что-то в нем менять. Надо удостовериться, что данные в нем меняются, то есть файл current.php запускается по cron. В Москве уже закончились торги на валютной бирже, и если планировщик у вас настроен правильно, значит он должен сработать через 2 часа 20 минут. Время запуска планировщика должно быть установлено на 0 часов, 0 минут, каждого дня, каждого месяца (часовой пояс сервера должен быть установлен как Europe/Moscow).

После 0 часов по Москве можно и посмотреть изменился ли файл current.json. По датам это сразу будет понятно. Если не изменился, значит есть проблемы с планировщиком, которые решать с техподдержкой хоста, причины могу быть в некорректных параметрах указанных.

Цитата:

Сообщение от spinastr
Может из этого скрипта вытащить данные?

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

spinastr 09.02.2018 22:08

laimas,
Теперь я понел,
current.php запустить этот фаил планировщиком в 0:00 каждый день?

laimas 09.02.2018 22:12

Цитата:

Сообщение от spinastr
current.php запустить этот фаил планировщиком в 0:00 каждый день?

Да, для этого и существует планировщик. Конечно, торги заканчиваются не в 0 часов, но лучше запрашивать курс в начале нового дня.

spinastr 09.02.2018 22:19

laimas,
Подскажите пожалуйста, что тут написать? Я это первый раз вижу.

https://pp.userapi.com/c834300/v8343..._kSbEh8TuM.jpg

spinastr 09.02.2018 22:27

Вот так и окей?

https://pp.userapi.com/c840427/v8404...qRQ8FraS_g.jpg

laimas 09.02.2018 22:29

Цитата:

Сообщение от spinastr
что тут написать?

Вот этого я сказать не могу, так как в этой строке задается путь к cron, интерпретатору РНР выполняющемуся из командной строки и путь к исполняемому файлу (в данном случае current.php). Ежику понятно, что на каждом хосте это будет свой путь, определенный настройками хоста.

Но как правильно указать все это в этом поле, обязательно в описании планировщика есть или же это описано в вопросах и ответах на хосте, с приведением примеров. Найти это, внимательно прочитать и ввести как указано в описании.

laimas 09.02.2018 22:34

Цитата:

Сообщение от spinastr
Вот так и окей?

Нет, не окей, индексный файл к задаче отношения не имеет. Более ничего не скажу специально, думаем, что там должно быть?

Есть золотое правило - внимательно изучать документацию, а не действовать методом научного тыка.

spinastr 09.02.2018 22:39

laimas,
там уже есть два скрипта

и все они такой конструкции

wget -O /dev/null "ссылка.php"

значит я пишу ссылку на current.php

ежедневно в 0 часов 0 минут?

spinastr 09.02.2018 22:41

laimas,
тут есть инструкция но старый интерфейс я понял

http://www.host-food.ru/faq/technica.../add.cron.job/

laimas 09.02.2018 22:46

Я для кого тут с бубнами плясал, рассказывая для чего каждый .php файл у вас делает? Какой файл запрашивает курс у ЦБ? Где он находится? Значит что должно быть указано в пути, какой файл?


Часовой пояс GMT +3, время: 02:04.