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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2008, 17:27   #21
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

автор, в каком виде картинка изначально выводится на страницу ?
скорей всего в виде <img src="..."> таким образом, обновление картинки возможно лишь изменением атрибута src у тега img (возможно на то же самое значение что и было, но по указанному адресу может быть уже другое содержание)
обновление этого атрибута возможно как асинхронно так и с обновлением страницы, остальное - дело серверных скриптов
свободен...
wall66 вне форума Ответить с цитированием
Старый 29.12.2008, 17:46   #22
FAV1210
Пользователь
 
Регистрация: 23.12.2008
Сообщений: 12
По умолчанию

Замечание wall66 меня заставило углубиться в теорию вопроса. Признаю некоторые свои заблуждения. Что ж учимся ...
Действительно, все могло бы решиться правильным GET-запросом из JavaScript, затем обработкой в сценарии PHP. Все бы хорошо, но почему-то значения переменных не перхватываются на стороне сервера.
Тему посмотрел на форумах: есть частные решения, но про графики (картинки) нигде не упоминается. Хотя по этому решению именно картинки-то и грузятся. Проблема в параметрах или настройках Smarty.
Продолжаю разбираться. Если есть какие-то особенности, подскажите pls.
FAV1210 вне форума Ответить с цитированием
Старый 29.12.2008, 18:15   #23
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Замечание wall66 меня заставило углубиться в теорию вопроса. Признаю некоторые свои заблуждения. Что ж учимся ...
Тебе уже трое человек о том же говорят всю ветку.
Код:
Действительно, все могло бы решиться правильным GET-запросом из JavaScript, затем обработкой в сценарии PHP.
Что собсно было сказано и подтверждено примером тут
Цитата:
Все бы хорошо, но почему-то значения переменных не перхватываются на стороне сервера.
Что значит значения не перехватываются? Они и не должны перехватываться. Ты их просто читаешь из HTTP заголовка через $_GET или $_POST.
Цитата:
Хотя по этому решению именно картинки-то и грузятся.
Нет, нет и еще раз нет! Не могут они грузится таким образом. Только текстовые данные, никаких бинарных!

Тебе же расказали подробно, пример дали.
SkyM@n вне форума Ответить с цитированием
Старый 29.12.2008, 21:27   #24
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 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;
    }
  }
}
которая проставляет в атрибут src картинки на странице значение переданное сервером
картинка обновляется и пользователь видит изменения на графике

___________________________________ __


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



если в сообщении есть опечатки - тебе же хуже, перечитывать написанное мне не охото
свободен...
wall66 вне форума Ответить с цитированием
Старый 30.12.2008, 18:10   #25
FAV1210
Пользователь
 
Регистрация: 23.12.2008
Сообщений: 12
По умолчанию

Уважаемый wall66, оргомное спасибо за обстоятельный и полный комментарий. Конечно же, второй вариант для меня предпочтительнее. Он намного проще и как представляется надежнее на случай одновременного обращения к базе нескольких пользователей. Над этим вариантом я сейчас и работаю. Но вот беда. Ни при каких условиях я не могу передать параметры в файл PHP. Все делаю как "доктор прописал":
на Click делаю обращение к фунции JavaScript, там формирую GET-запрос, а затем обращаюсь к PHP файлу из адресной строки src. PHP упортно не ловит $_GET['id'].
Думаю, что надо копать в другом месте. Сайт у меня получается достаточно навороченный. Причем он делался разными руками и в разное время. Причину вижу в переадресации, заложенной в .htaccess - файле. Сейчас разбираюсь с этим. Но это уже другая тема ...
По-любому, большое спасибо за помощь.
С наступающим Новым Годом, счастья и здоровья !
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