|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.12.2008, 17:27 | #21 |
Участник клуба
Регистрация: 04.10.2008
Сообщений: 1,485
|
автор, в каком виде картинка изначально выводится на страницу ?
скорей всего в виде <img src="..."> таким образом, обновление картинки возможно лишь изменением атрибута src у тега img (возможно на то же самое значение что и было, но по указанному адресу может быть уже другое содержание) обновление этого атрибута возможно как асинхронно так и с обновлением страницы, остальное - дело серверных скриптов свободен... |
29.12.2008, 17:46 | #22 |
Пользователь
Регистрация: 23.12.2008
Сообщений: 12
|
Замечание wall66 меня заставило углубиться в теорию вопроса. Признаю некоторые свои заблуждения. Что ж учимся ...
Действительно, все могло бы решиться правильным GET-запросом из JavaScript, затем обработкой в сценарии PHP. Все бы хорошо, но почему-то значения переменных не перхватываются на стороне сервера. Тему посмотрел на форумах: есть частные решения, но про графики (картинки) нигде не упоминается. Хотя по этому решению именно картинки-то и грузятся. Проблема в параметрах или настройках Smarty. Продолжаю разбираться. Если есть какие-то особенности, подскажите pls. |
29.12.2008, 18:15 | #23 | |||
Laravel/Vue expert
Старожил Подтвердите свой е-майл
Регистрация: 08.08.2007
Сообщений: 2,832
|
Цитата:
Код:
Цитата:
Цитата:
Тебе же расказали подробно, пример дали. |
|||
29.12.2008, 21:27 | #24 |
Участник клуба
Регистрация: 04.10.2008
Сообщений: 1,485
|
так... похоже одного наводящего вопроса не хватило...
ну тогда второй: как формируется картинка перед тем как сервер отдаст ее браузеру клиента ? ее делает определенный скрипт (никак не связанный ни со смарти, ни с аяксом) и отдает по запросу только картинку! без каких либо html тегов, подписей и прочего (код всей страницы грузится отдельно, перед ней) поняв это, потихоньку следуем далее и набираемся терпения, конец еще не скоро... аякс это небольшой js код который может взять данные со страницы и сделать асинхронный запрос к серверу (клик на обычную ссылку это тоже запрос, только не асинхронный) попутно передавая эти данные с помощью get или post для этого создается обьект XMLHttpRequest Код HTML:
<script> try { pic_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { pic_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (err) { pic_request = null; } } if(!pic_request && typeof XMLHttpRequest != "undefined") pic_request = new XMLHttpRequest(); </script> в примере: создается обьект pic_request (брал давным давно из даталайва) далее к определенному элементу страницы приписывается событие наподобие onclick или onchange Код HTML:
<span onclick="make_pic_request()">нажмите сюда для обновления графика</span> в примере: при нажатии на фразу произойдет вызов функции make_pic_request затем нужно определить эту функцию Код HTML:
function make_pic_request() { var url = "/pic.php?val=" + escape(document.getElementById('input_field').value); pic_request.open("GET", url, true); pic_request.onreadystatechange = pic_updatePage; pic_request.send(null); } в примере: функция формирует url к скрипту на сервере передавая в качестве get параметра переменную val ($_GET['val']) равную значению атрибута value поля с id равным 'input_field'; затем устанавливает функцию pic_updatePage в качестве обработчика ответа от сервера и посылает запрос (а это взято из учебника по ajax с сайта ibm) затем на стороне сервера выполняется скрипт формирующий картинку и записывающий ее во временный фаил (в формировании может участвовать переменная $_GET['val'] переданная в адресной строке) возвращает этот скрипт путь к картинке (в обычном текстовом формате, не обязательно xml) ответ от сервера передается в функцию pic_updatePage Код HTML:
function pic_updatePage() { if (pic_request.readyState == 4) { if (pic_request.status == 200) { document.getElementById("pic").src=pic_request.responseText; } } } картинка обновляется и пользователь видит изменения на графике ___________________________________ __ при некоторых особенностях хранения временных файлов на сервере способ не подойдет к сайтам с большой посещаемостью ибо посетители могут увидеть чужой график, поэтому предложу другой способ, без применения ajax: картинка должна формироваться на основе параметров из адресной строки <img src="/image.php?uid=123"> т е скрипт должен взять из базы значения относящиеся к uid равному 123 также картинка может изменяться от дополнительных параметров из той же адресной строки <img src="/image.php?uid=123&year=2006"> скрипт берет из базы значения относящиеся к uid=123 и к году 2006 таким образом обновление картинки можно организовать добавлением к уже имеющемуся значению атрибута src строки &year=2006 это может обеспечить функция Код HTML:
<span onclick="update()">обновить</span> <script> function update() { document.getElementById('pic').src+='&year='+document.getElementById('field').value; } </script> если в сообщении есть опечатки - тебе же хуже, перечитывать написанное мне не охото свободен... |
30.12.2008, 18:10 | #25 |
Пользователь
Регистрация: 23.12.2008
Сообщений: 12
|
Уважаемый wall66, оргомное спасибо за обстоятельный и полный комментарий. Конечно же, второй вариант для меня предпочтительнее. Он намного проще и как представляется надежнее на случай одновременного обращения к базе нескольких пользователей. Над этим вариантом я сейчас и работаю. Но вот беда. Ни при каких условиях я не могу передать параметры в файл PHP. Все делаю как "доктор прописал":
на Click делаю обращение к фунции JavaScript, там формирую GET-запрос, а затем обращаюсь к PHP файлу из адресной строки src. PHP упортно не ловит $_GET['id']. Думаю, что надо копать в другом месте. Сайт у меня получается достаточно навороченный. Причем он делался разными руками и в разное время. Причину вижу в переадресации, заложенной в .htaccess - файле. Сейчас разбираюсь с этим. Но это уже другая тема ... По-любому, большое спасибо за помощь. С наступающим Новым Годом, счастья и здоровья ! |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Динамическое суммирование | 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 |