Автор Тема: JavaScript, PHP и imagemap  (Прочитано 7568 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
JavaScript, PHP и imagemap
« : 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?
« Последнее редактирование: 25 Сентября 2006, 17:46:09 от Anthony »

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
JavaScript, PHP и imagemap
« Ответ #1 : 25 Сентября 2006, 18:05:33 »
Anthony
Проще рисовать на сервере. Имхо.
LJ: Backslashed life (rss)

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
JavaScript, PHP и imagemap
« Ответ #2 : 25 Сентября 2006, 18:08:04 »
CGVictor
Так и делаю. А вот как еще и карту построить...

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
JavaScript, PHP и imagemap
« Ответ #3 : 25 Сентября 2006, 18:44:15 »
Цитировать
Есть какой-нибудь способ передать данные из PHP-скрипта (new_draw.php), который собственно и генерирует картинку, клиентскому javascript-у?

Нужно задуматься и ответить себе на этот вопрос: «а что вообще делает PHP и что он возвращает?».
И будет ясно, что делать дальше.

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
JavaScript, PHP и imagemap
« Ответ #4 : 25 Сентября 2006, 18:53:40 »
hanslinger
И не лень ведь было писать совершенно бесполезный ответ...

Но вопрос вполне конкретный и расчитан на тех, кто уже сталкивался с подобной проблемой (реализацию я уже написал - это обновление по ссылке в javascript).

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
JavaScript, PHP и imagemap
« Ответ #5 : 25 Сентября 2006, 21:39:43 »
Anthony
Карту?
А чем стандартные функции для графики (GD, GD2) не устраивают?
LJ: Backslashed life (rss)

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
JavaScript, PHP и imagemap
« Ответ #6 : 25 Сентября 2006, 21:50:50 »
CGVictor
Честно говоря просмотрел все функции из GD, но не нашел той, которая бы подошла для этой цели. Может конечно не там смотрел... Не подскажите о каких именно функциях идет речь?

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
JavaScript, PHP и imagemap
« Ответ #7 : 26 Сентября 2006, 00:18:19 »
Anthony
Гм.. да там многие подошли бы.
А объясните, pls, еще раз, что именно вам нужно отображать? Что-то я конечной задачи не улавливаю...
LJ: Backslashed life (rss)

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
JavaScript, PHP и imagemap
« Ответ #8 : 26 Сентября 2006, 10:44:17 »
CGVictor
необходимо, чтобы помимо картинки создавалась еще и карта:
<img src="" usemap="#map" border="0" id="graph1">
<
map name="map"><area shape="rect" coords="400,200,500,300" onmouseover="" onmouseout=""></map>


Цель - получить на странице сайта изображение (график), при наведении мышки на определенный участок (точка на графике), всплывающую подсказку со значениями в данной точке графика. Так сделано например на 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();

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
JavaScript, PHP и imagemap
« Ответ #9 : 26 Сентября 2006, 12:55:34 »
Anthony
:) А я-то себе уже представил, как ты будешь на JS с этим извращаться :)

С картой - все просто: пишешь ее в HTML-код и всё. С некоторым разбросом параметров, конечно.

Если у тебя динамически подгружается картинка, то имеет смысл тогда подгружать карту в документ асинхронным запросом (XMLRequest). Или, как промежуточное решение, динамически формировать в документе элемент script с src=путь-на-сервере, которому ты отдашь код, который и сформирует карту...

Как-то так, наверно.
LJ: Backslashed life (rss)

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
JavaScript, PHP и imagemap
« Ответ #10 : 26 Сентября 2006, 13:10:48 »
Цитировать
CGVictor:
пишешь ее в HTML-код и всё. С некоторым разбросом параметров, конечно.

не, данный вариант не катит. Графики все разные, а значения на них и подавно.

Цитировать
CGVictor:
динамически формировать в документе элемент script с src=путь-на-сервере, которому ты отдашь код, который и сформирует карту...

Мне такое в голову приходило, но почему-то подумалось, что это не будет работать. Т. е. грубо говоря я в процессе создания картинки в PHP также записываю файлик *.js в котором будет все для построения карты, типа массив координат и значений, и функции вывода, а потом указываю элементу script этот файлик?

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
JavaScript, PHP и imagemap
« Ответ #11 : 26 Сентября 2006, 15:34:26 »
Anthony
Варианта динамики - два.

Первый - createElement(\'script\') и дальше как у Котерова. Src=url, который подтянется с сервера.

Второй - "втупую" запрашивать у сервера (XMLRequest) некий текст (содержимое html для построения карты) и по onReadyStateChange запихивать полученное в документ (innerHTML какой-нить). Это сработает.
LJ: Backslashed life (rss)

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
JavaScript, PHP и imagemap
« Ответ #12 : 26 Сентября 2006, 15:58:21 »
Цитировать
CGVictor:
Первый - createElement(\'script\') и дальше как у Котерова. Src=url, который подтянется с сервера.

Я про это и говорил. Только закралось подозрение, что работать не будет и вот по какой причине - когда таким же способом вызываем картинку, которая генерируется автоматически, чтобы исключить кеширование полностью в качестве одного из параметров указываем рандомное число. У меня в частности в запросе картинки это параметр "&rnd=" + ign();

Нужно ли указывать что-то подобное для запроса скрипта?

И еще, лучше использовать createElement(\'script\') или уже созданному элементу script можно ссылку поменять, типа script.src=URL?

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
JavaScript, PHP и imagemap
« Ответ #13 : 26 Сентября 2006, 15:59:03 »
Кстати, а кто такой Котеров?

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
JavaScript, PHP и imagemap
« Ответ #14 : 26 Сентября 2006, 16:49:27 »
Anthony
Ну, пусть так. Хотя второй вариант был бы без глюков "от JS".

По рандому: да, указывать можно, с той же целью.

Поменять src существующему может не везде получиться. (Безопасность, шоб йийо...)

Котеров: http://dklab.ru . Советую.
LJ: Backslashed life (rss)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28