Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2008, 20:38   #1
FAV1210
Пользователь
 
Регистрация: 23.12.2008
Сообщений: 12
По умолчанию Динамическое использование jpgraph

Возможно ли использовать jpgraph в среде smarty в динамическом режиме при помощи xajax? Если возможно, то подскажите как.

Очень надо сделать график, который изменялся бы при вводе дополнительных данных из input (основные данные из БД) без перезагрузки страницы, т.е. динамически.

Заранее благодарю за помощь.
FAV1210 вне форума Ответить с цитированием
Старый 24.12.2008, 09:46   #2
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Все так же, как и НЕ при использовании Смарти. Или вы беспокоетесь о том, что смарти закеширует график? При нажатии на кнопку подтверждения запрос через ajax(xajax) передается в БД и результат - на странице.
JPGraph я бы всем рекоммендовал юзать как динамику.
SkyM@n вне форума Ответить с цитированием
Старый 24.12.2008, 12:08   #3
FAV1210
Пользователь
 
Регистрация: 23.12.2008
Сообщений: 12
По умолчанию

Все было бы просто, если не считать того, xajax возвращает данные через XML. Так вот я и не знаю как передать функцию
$graph->Stroke(); через
$this->objResponse->...

... думаю, что с массивами из БД все же справлюсь, хотя тоже есть вопросы.
FAV1210 вне форума Ответить с цитированием
Старый 24.12.2008, 13:16   #4
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Так передавать не сам image/jpeg , а через его родимый транспорт - text/xml. Передать именно путь к изображению.

А почему бы вам не выбрать jQuery? Хотя, это ваш личный выбор.
SkyM@n вне форума Ответить с цитированием
Старый 24.12.2008, 13:52   #5
FAV1210
Пользователь
 
Регистрация: 23.12.2008
Сообщений: 12
По умолчанию

Так все же как должна выглядеть строка
$this->objResponse->...

напишите пожалуйста по-подробнее
FAV1210 вне форума Ответить с цитированием
Старый 24.12.2008, 14:07   #6
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Сообщение от FAV1210 Посмотреть сообщение
Так все же как должна выглядеть строка
$this->objResponse->...

напишите пожалуйста по-подробнее
Как вы возвращаете данные, пришедшие от сервера?
Вот таким же образом и тут.
Советую почитать статейку, посвященную именно использованию аджакса и смарти: http://www.amway-shop.ru/articles/article257.html
SkyM@n вне форума Ответить с цитированием
Старый 24.12.2008, 14:17   #7
FAV1210
Пользователь
 
Регистрация: 23.12.2008
Сообщений: 12
По умолчанию

Спасибо. Буду вникать. Но все же остаются вопросы.
Уже пробовал, но не получилось.
FAV1210 вне форума Ответить с цитированием
Старый 25.12.2008, 07:08   #8
FAV1210
Пользователь
 
Регистрация: 23.12.2008
Сообщений: 12
По умолчанию Как подключить jpgraph для динамического использования

Статью изучил, но это не решило моей проблемы.

Сейчас у меня работает следующая схема подключения 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();

}
?>
и вуаля график в ячейке таблицы после перезагрузки страницы

Настроил xajax - работает, выводит в html результаты запросов типа

$this->objResponse = new xajaxResponse();
$this->objResponse->setCharEncoding('windows-1251');
$this->objResponse->addAssign("price","innerHTML",$r ow['price']);
return $this->objResponse->getXML();

Но вывод графика не получается, ругается на структуру xml
Подскажите как все таки правильно подключить jpgraph для динамического использования.
FAV1210 вне форума Ответить с цитированием
Старый 25.12.2008, 11:34   #9
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Предлагаю в корне поменять методы решения данного вопроса - юзать не xajax, а jQuery.
Пример: http://www.volynrada.gov.ua/samples/test01.php
Код HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>Untitled Document</title>
		<script language="javascript" type="text/javascript" src="/javascripts/jquery.js"></script>
	</head>
	<body>
		<script type="text/javascript">
			$(function(){
				$("#showme").click(function(){
					$("#graph").attr("src","/samples/jpgraph/tests/test01.php?jan=" + $("#jan").val() + "&feb=" + $("#feb").val() + "&mar=" + $("#mar").val() + "&apr=" + $("#apr").val());
				});
			});
		</script>
		<table border="0" cellpadding="5" cellspacing="5">
			<tr><td>January: </td><td><input id ="jan" type="text" value="400" /></td></tr>
			<tr><td>February: </td><td><input id ="feb" type="text" value="600" /></td></tr>
   	   <tr><td>March: </td><td><input id ="mar" type="text" value="500" /></td></tr>
      	<tr><td>April: </td><td><input id ="apr" type="text" value="1000" /></td></tr>
		</table>
		<input id="showme" type="button" value="Show Me" /><br/>
		<img id="graph" src="/samples/images/nophoto.jpg" alt="" />
	</body>
</html>
PHP код:
<?php
    
include ("../jpgraph.php");
    include (
"../jpgraph_pie.php");
    include (
"../jpgraph_pie3d.php");
    
    
    
$jan intval($_GET["jan"]);
    
$feb intval($_GET["feb"]);
    
$mar intval($_GET["mar"]);
    
$apr intval($_GET["apr"]);
    
    
$data = array($jan$feb$mar$apr);
    
    
$graph = new PieGraph(330,300,"auto");
    
$graph->SetBackgroundImage("../madeforbg.jpg",BGIMG_FILLFRAME);
    
$graph->SetShadow();
    
    
$graph->title->Set("My earnings");
    
$graph->title->SetFont(FF_FONT1,FS_BOLD);

    
    
$p1 = new PiePlot3D($data);
    
$p1->ExplodeSlice(1);
    
$p1->SetCenter(0.45);
    
$p1->SetLegends($gDateLocale->GetShortMonth());
    
    
$graph->Add($p1);
    
$graph->Stroke();

?>
SkyM@n вне форума Ответить с цитированием
Старый 25.12.2008, 12:54   #10
FAV1210
Пользователь
 
Регистрация: 23.12.2008
Сообщений: 12
По умолчанию

Спасибо, буду пробовать
FAV1210 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое суммирование cat2182 Microsoft Office Excel 1 19.11.2008 07:53
Динамическое MainMenu dr.Chas Общие вопросы Delphi 4 24.06.2008 20:33
Динамическое добавление в страницу Dj_smart HTML и CSS 11 26.05.2008 22:28
Динамическое меню? Ice_Juice Microsoft Office Excel 12 03.03.2008 11:24
Динамическое создание WebBrowser DragonLand Работа с сетью в Delphi 2 20.08.2007 21:47