Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Динамическое использование jpgraph

44K
25 декабря 2008 года
FAV1210
5 / / 25.12.2008
Подскажите пожалуйста как можно правильно подключить jpgraph в среде smarty через xajax, для того чтобы график стал динамическим, т.е. можно было его менять без перезагрузки страницы.
Основные данные получаются SQL-запросом из БД, затем вводятся доп. коэффициенты и должен получиться измененный график.

Весь вопрос в том, как передать из xajax уже сформированный график
$graph->Stroke();

Заранее благодарю за помощь.
13
25 декабря 2008 года
RussianSpy
3.0K / / 04.07.2006
График - это обычная картинка. Просто обновляйте картинку и все - тут в общем даже AJAX не потребуется
44K
26 декабря 2008 года
FAV1210
5 / / 25.12.2008
Вы, вероятно, не совсем поняли. Ведь перед тем как получить "картинку" надо получить данные из MySQL, их обработать с доп. коэфф. и только потом кинуть на html.
Что значит "Просто обновляйте картинку и все", через JavaScript что ли?
Не понял ... Объясните pls
244
26 декабря 2008 года
UAS
2.0K / / 19.07.2006
За обработку и вывод отвечает php-файл. При запросе к нему он возвращает соответствующий заголовок, что выводится изображение, и выдает само изображение в поток.

Как должно работать:
Теперь на нажатие на кнопку (например) вешаешь событие(вызов функции): уничтожение старой картинки в теле документа, создание в JavaScript объекта Image, где указываешь адрес до картинки и параметры (например, image.php?param1=bla1&param2=dl2).

Вообщем, ничем не отличается от работы той же самой капчи.
44K
26 декабря 2008 года
FAV1210
5 / / 25.12.2008
C jpgraph, можно сказать, я разобрался. График отлично строится из PHP. И данные я гружу из MySQL. А хочу двинуться дальше. На существующий график наложить, например, какую-то линейную зависимость. Добавляю через input доп. данные и график должен перестоиться с учетом введенных данных.

Xajax дает красивую возможность подсовывать в html значения по id элемента. Я по своей наивности полагал, что смогу таким же образом подставить новый график, если мне удастся передать с сервера готовый поток с графиком в формате xml, а затем обработать его на стороне клиента.
Однако, задачка оказалась не тривиальной и требующей некой фантазии. А у меня , к сожалению, не хватает знаний и опыта.
А очень хочется добиться намеченного.
13
26 декабря 2008 года
RussianSpy
3.0K / / 04.07.2006
Задачка на самом деле тривиальная, а вот с фантазией у вас действительно проблемы.

Наш график - по сути обычная картинка, выдаваемая РНР скриптом.

 
Код:
<img src="mygraph.php?КУЧА_ПАРАМЕТРОВ" id="graph1" />


В форму пользователь вводит какие-то данные, на основе которых должен быть видоизменен график (например масштаб). Что мы делаем? Мы при нажатии на кнопку (button, а не submit) вызываем JavaScript функцию, которая формирует новый адрес для графика. Что-то вроде этого:

[highlight=javascript]
function newGraph()
{
.... // Собираем данные из формы
newUrl = 'x1='+x1+'&x2='+x2....;//Формируем строку GET-запроса
document.getElementById('graph1').src='mygraph.php?'+newUrl; //Меняем URL нашего графика
}
[/highlight]

Ну а дальше нужно только перехватить эти параметры в РНР файле, отвечающем за построение графика и правильно обработать. Все. Никакого AJAX тут не нужно.
44K
26 декабря 2008 года
FAV1210
5 / / 25.12.2008
Сейчас у меня работает следующая схема подключения jpgraph
html
...
<td ><img src="mysmartysection/" /></td>

index.class.php
<?php
...
if($this->input->all=="mysmartysection") {
... SQL запрос к БД
include ("jpgraph/jpgraph.php");
include ("jpgraph/jpgraph_line.php");
include ("jpgraph/jpgraph_bar.php");

$graph = new Graph(450,280,"auto");
... настройки графика

$graph->Stroke();
}
?>
Все нормально работает. Но мне нужно дальше.
Специфика создаваемого графика в следующем:
- пользователь получает графические (например, статистика) данные с сервера;
- добавляет свои параметры, которые пересчитываются на клиенте и преобразуются в некую функцию, которая накладывается на основной график;
- дакую операцию должен иметь возможность делать каждый юзер.
- причем разновидность основных (статистических) данных более 30.
Вот такая задачка.
13
26 декабря 2008 года
RussianSpy
3.0K / / 04.07.2006
Вы вообще читаете что вам пишут? Или вы с собой беседуете?
44K
29 декабря 2008 года
FAV1210
5 / / 25.12.2008
Не судите строго, ваши замечания меня заставили углубиться в теорию вопроса. Признаю некоторые свои заблуждения. Что ж учимся ...
Действительно, все могло бы решиться правильным GET-запросом из JavaScript, затем обработкой в сценарии PHP. Все бы хорошо, но почему-то значения переменных не перхватываются на стороне сервера.
Тему посмотрел на форумах: есть частные решения, но про графики (картинки) нигде не упоминается. Хотя по этому решению именно картинки-то и грузятся. Проблема в параметрах или настройках Smarty.
Продолжаю разбираться. Если есть какие-то особенности, подскажите pls.
13
29 декабря 2008 года
RussianSpy
3.0K / / 04.07.2006
Никаких особенностей нет. Если параметры не перехватываются - значит неверно их обрабатываете
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог