Forum Webscript.Ru
Программирование => JavaScript & JScript => Тема начата: Anthony от 25 Сентября 2006, 17:35:25
-
Добрый день!
Решил сделать у себя на сайте подписи к графикам в виде карты для картинки и столкнулся с такой проблемой - а как собственно от сервера передать данные для построения карты?
График строится и обновляется javascript-ом (http://www.amity.ru/monitor/):
img1 = new Image();
img1.src=\'http://www.amity.ru/mon/new_draw.php?id=\' + tikerid + \'&int=\' + interval + \'&rnd=\' + ign();
Есть какой-нибудь способ передать данные из PHP-скрипта (new_draw.php), который собственно и генерирует картинку, клиентскому javascript-у?
Или может появились какие-нибудь библиотеки для рисования средствами javascript?
-
Anthony
Проще рисовать на сервере. Имхо.
-
CGVictor
Так и делаю. А вот как еще и карту построить...
-
Есть какой-нибудь способ передать данные из PHP-скрипта (new_draw.php), который собственно и генерирует картинку, клиентскому javascript-у?
Нужно задуматься и ответить себе на этот вопрос: «а что вообще делает PHP и что он возвращает?».
И будет ясно, что делать дальше.
-
hanslinger
И не лень ведь было писать совершенно бесполезный ответ...
Но вопрос вполне конкретный и расчитан на тех, кто уже сталкивался с подобной проблемой (реализацию я уже написал - это обновление по ссылке в javascript).
-
Anthony
Карту?
А чем стандартные функции для графики (GD, GD2) не устраивают?
-
CGVictor
Честно говоря просмотрел все функции из GD, но не нашел той, которая бы подошла для этой цели. Может конечно не там смотрел... Не подскажите о каких именно функциях идет речь?
-
Anthony
Гм.. да там многие подошли бы.
А объясните, pls, еще раз, что именно вам нужно отображать? Что-то я конечной задачи не улавливаю...
-
CGVictor
необходимо, чтобы помимо картинки создавалась еще и карта:

Цель - получить на странице сайта изображение (график), при наведении мышки на определенный участок (точка на графике), всплывающую подсказку со значениями в данной точке графика. Так сделано например на liveinternet: http://www.liveinternet.ru/stat/amity.ru/
Сама картинка генерируется PHP (кусочек файла new_draw.php):
header("Content-type: image/png");
ImagePNG($image);
ImageDestroy($image);
По запросу из javascript:
img1 = new Image();
img1.src=\'http://www.amity.ru/mon/new_draw.php?id=\' + tikerid + \'&int=\' + interval + \'&rnd=\' + ign();
-
Anthony
:) А я-то себе уже представил, как ты будешь на JS с этим извращаться :)
С картой - все просто: пишешь ее в HTML-код и всё. С некоторым разбросом параметров, конечно.
Если у тебя динамически подгружается картинка, то имеет смысл тогда подгружать карту в документ асинхронным запросом (XMLRequest). Или, как промежуточное решение, динамически формировать в документе элемент script с src=путь-на-сервере, которому ты отдашь код, который и сформирует карту...
Как-то так, наверно.
-
CGVictor:
пишешь ее в HTML-код и всё. С некоторым разбросом параметров, конечно.
не, данный вариант не катит. Графики все разные, а значения на них и подавно.
CGVictor:
динамически формировать в документе элемент script с src=путь-на-сервере, которому ты отдашь код, который и сформирует карту...
Мне такое в голову приходило, но почему-то подумалось, что это не будет работать. Т. е. грубо говоря я в процессе создания картинки в PHP также записываю файлик *.js в котором будет все для построения карты, типа массив координат и значений, и функции вывода, а потом указываю элементу script этот файлик?
-
Anthony
Варианта динамики - два.
Первый - createElement(\'script\') и дальше как у Котерова. Src=url, который подтянется с сервера.
Второй - "втупую" запрашивать у сервера (XMLRequest) некий текст (содержимое html для построения карты) и по onReadyStateChange запихивать полученное в документ (innerHTML какой-нить). Это сработает.
-
CGVictor:
Первый - createElement(\'script\') и дальше как у Котерова. Src=url, который подтянется с сервера.
Я про это и говорил. Только закралось подозрение, что работать не будет и вот по какой причине - когда таким же способом вызываем картинку, которая генерируется автоматически, чтобы исключить кеширование полностью в качестве одного из параметров указываем рандомное число. У меня в частности в запросе картинки это параметр "&rnd=" + ign();
Нужно ли указывать что-то подобное для запроса скрипта?
И еще, лучше использовать createElement(\'script\') или уже созданному элементу script можно ссылку поменять, типа script.src=URL?
-
Кстати, а кто такой Котеров?
-
Anthony
Ну, пусть так. Хотя второй вариант был бы без глюков "от JS".
По рандому: да, указывать можно, с той же целью.
Поменять src существующему может не везде получиться. (Безопасность, шоб йийо...)
Котеров: http://dklab.ru . Советую.
-
CGVictor:
Ну, пусть так. Хотя второй вариант был бы без глюков "от JS".
Зато появятся другие - "от XMLRequest" ;) У меня на странице этим макаром таблички обновляются и сейчас пытаемся сделать синхронизацию.
CGVictor:
По рандому: да, указывать можно, с той же целью.
Поменять src существующему может не везде получиться. (Безопасность, шоб йийо...)
Кстати, а как пользоваться то потом этим. После создания объекта просто вызывать функции из файла по этой ссылке?
И еще. График обновляется и меняется без перезагрузки страницы. При изменение графика мне соответственно необходимо изменить и карту для него. Тогда я так понимаю нужно просто удалить созданные предыдущий объект script и создать новый?
CGVictor:
Котеров: http://dklab.ru . Советую.
Спасибо!
И не только за ссылку на сайта Котерова, вообще за помощь! Спасибо!