[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Создание динамических картинок в ПХП
sergeiss
Итак, задача. Надо создать "динамическую картинку"... И сделать это надо именно средствами ПХП. Под этим термином понимаем какой-то график. Плоский или объемный; прямоугольный или круговой - всё это не важно!. Самое главное, что мы можем нарисовать его с помощью библиотек GD2 или Imagik.
Но при этом мы не хотим перезагружать страницу.

Данный вопрос периодически всплывает на форуме, поэтому я и решил создать эту тему.

И вообще - возможно ли такое? Ответ краток: да, возможно!

Объясняю "на пальцах" алгоритм.
1. Надо сделать на странице картинку такого примерно вида:
<img id="pict" src="diagramm.php" />


2. В зависимости от изменений на странице, меняем src для данной картинки, примерно так (некие абстрактные параметы, которые можно использовать для некой круговой диаграммы); тут показан принцип, а не полный код; величины можно брать из каких-то полей:
src="diagramm.php?w=500&h=300&perc=70&color=5"

Изменения делаются средствами JS. Если необходимо запросить какие-то данные с сервера, то можно использовать AJAX. Но он тут не является обязательным.

В указанных параметрах предполагается, что выставляем ширину картинки 500 пикселей, высоту - 300, надо закрасить 70% круга, использовать цвет номер 5 (некий индекс цвета, известный скрипту).
Естественно, в реальном скрипте могут быть другие параметры :)

3. Надо сделать скрипт diagramm.php, который и построит нужный график, в зависимости от указанных параметров (которые будут приняты в нём как GET-параметры). Этот скрипт будет строить (динамическую) картинку и отдавать её браузеру. И будет он использовать библиотеку GD2 или Imagik.

Браузер, видя изменения в src, будет запрашивать новый источник. То есть, будет вызывать скрипт diagramm.php с новыми параметрами...

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

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

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2018 Invision Power Services, Inc.