|
|
|
| Задача такая:
В браузере отображается картинка (bmp-файл).
При нажатии на неё вызывается скрипт на сервере, который эту картинку меняет - например, меняет её цвет и записывает изменения в тот же bmp-файл на сервере. Я знаю, что можно заранее прописать в html-код две картинки и менять их, но мне нужно, чтобы смена происходила на сервере.
После этого браузер должен эту картинку перерисовать (очевидно, получив ответ от скрипта, что всё готово)
Остальное содержимое страницы, очевидно, перерисовывать не нужно.
Эффект для пользователя такой, что он нажал, картинка быстро поменялась, и ничего больше на странице не изменилось. Сервер же этот запрос получил, зафиксировал его в базе и поменял картинку.
Кажется, это задача для Javascript
Допустим, скрипт можно вызвать.
А вот как заставить картинку перерисовываться? | |
|
|
|
|
|
|
|
для: apomin
(26.05.2008 в 21:08)
| | Забыл написать, что скрипт на сервере - это cgi-скрипт, совершенно отдельная вещь.
Его я могу запрограммировать делать то, что нужно. | |
|
|
|
|
|
|
|
для: apomin
(27.05.2008 в 00:23)
| | Исправленный вариант задачи:
На странице имеется несколько картинок.
При нажатии на любую из них картинка меняется (у каждой картинки - два варианта), при повторном нажатии восстанавливается первоначальный вид картинки и т.д.
В конце страницы имеется кнопка Submit, по которой состояния (или изменения состояний) картинок передаются скрипту на сервер.
Это как-то лучше выглядит, переключение состояния картинок я где-то видел. Нужно где-то накапливать изменения и потом их передавать в виде параметров при нажатии кнопки. | |
|
|
|
|
|
|
|
для: apomin
(26.05.2008 в 21:08)
| | Перерисовывать изображение на сервере - это GD-библиотека.
Изменение части содержимого страницы без перезагрузки остального - это AJAX.
Только не BMP, а JPG, PNG или GIF, иначе кроме как в IE, вашей картинки видно не будет. | |
|
|
|
|
|
|
|
для: sim5
(27.05.2008 в 01:23)
| | Да, точно, AJAX
Могу сделать и gif-картинки - теперь, когда стало ясно, что у каждого изображения всего два состояния, они все создаются заранее, и просто передаются ссылки.
Gif заодно и поменьше будет.
Но если все объекты существуют заранее, а для переключения картинок существуют конструкции вроде
<IMG SRC="face1.gif" NAME="face" ONMOUSEDOWN="document.images['face'].src='face2.gif'">
то можно будет сделать и на JavaScript | |
|
|
|
|
|
|
|
для: apomin
(27.05.2008 в 01:49)
| | Можно. Но не так, а так:
<img src="face1.gif" onclick="this.src='face2.gif'" /> | |
|
|
|
|
|
|
|
для: sim5
(27.05.2008 в 02:13)
| | Спасибо!
Вот получилось то, что нужно
В форму отправляется номер выбранной картинки
Наверняка ещё можно оптимизировать, но идея понятна.
<html>
<head>
<script type="text/javascript">
count = 1
<!--
function ExtractNameNumber (str)
{
for (i = 0; str[i]; i++) {
if (str[i] == '1') {
document.images['face'].src='face2.gif'
count= 2
}
else if (str[i] == '2') {
document.images['face'].src='face1.gif'
count= 1
}
}
}
function f() {
document.myform.data.value=count
}
//-->
</script>
<title></title>
</head>
<body>
<script type="text/javascript">
</script>
<p><img SRC="face1.gif" WIDTH="64" HEIGHT="64" NAME="face" ONMOUSEDOWN="ExtractNameNumber (document.images['face'].src)"> </p>
<form method="get" name="myform" action="script.exe" onsubmit="f(); return true;">
<input type="hidden" id="data" name="data">
<input type="submit" value="Выбрать">
</form>
</body>
</html> | |
|
|
|
|
|
|
|
для: apomin
(28.05.2008 в 07:56)
| | Вы можете словами объяснить, чего вы хотите? То, что вы написали полная профанация. Нажав на кнопку формы "Выбрать", вы отправите форму, и все ваши функции форме будут побарабану. | |
|
|
|