Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.10.2008, 16:31
Интересующийся
Отправить личное сообщение для Мел Посмотреть профиль Найти все сообщения от Мел
 
Регистрация: 02.10.2008
Сообщений: 10

Элемент <input type="image" ...>
Как с помощью JavaScript присвоить значения переменным foo_x и foo_y элемента формы <input type="image" name="foo" id="foo" onclick="getFoo();"/> при клике в функции getFoo() ?
Как ни пытался - ничего не выходит.
Ответить с цитированием
  #2 (permalink)  
Старый 02.10.2008, 16:33
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Мел,
Не понял, присвоить переменные этому DOM элементу, или что?

Добавил:
Или вы имеете в виду получение переменных x и y, которые передаются по сабмиту на сервер?
Получить их напрямую из JavaScript нельзя, придется получать их точно так же, как и для других элементов.

Последний раз редактировалось Андрей Параничев, 02.10.2008 в 16:49.
Ответить с цитированием
  #3 (permalink)  
Старый 02.10.2008, 16:51
Интересующийся
Отправить личное сообщение для Мел Посмотреть профиль Найти все сообщения от Мел
 
Регистрация: 02.10.2008
Сообщений: 10

Да.
(Кпримеру, на PHP на стороне сервера я бы сделал так :
<? $foo_x=$_POST['foo_x']; $foo_y=$_POST['foo_y'] ; ?>,
либо
<? $foo_x=$_GET['foo_x']; $foo_y=$_GET['foo_y'] ; ?>, в зависимости от метода GET или POST, но мне нужно сделать это на стороне клиента с помощью JavaScript.
PS: Я новичек в JavaScript.
Ответить с цитированием
  #4 (permalink)  
Старый 02.10.2008, 17:03
Интересующийся
Отправить личное сообщение для Мел Посмотреть профиль Найти все сообщения от Мел
 
Регистрация: 02.10.2008
Сообщений: 10

Опять сообщение продублировалось. Видимо я тороплюсь.
Ответить с цитированием
  #5 (permalink)  
Старый 02.10.2008, 17:12
Интересующийся
Отправить личное сообщение для Мел Посмотреть профиль Найти все сообщения от Мел
 
Регистрация: 02.10.2008
Сообщений: 10

Сообщение от Андрей Параничев
придется получать их точно так же, как и для других элементов.
Это в смысле только на стороне сервера, либо <input type="image"> использовать как просто <img> ?

Последний раз редактировалось Мел, 02.10.2008 в 17:23.
Ответить с цитированием
  #6 (permalink)  
Старый 02.10.2008, 17:17
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Мел,
Я могу придумать только что-нибудь вот такое:
<html>
<head>
	<script>
		function getOffsets(element) {
			var left = element.offsetLeft,
			    top  = element.offsetTop;
			
			var parent = element.offsetParent;
			
			while(parent && parent.tagName != "BODY")
			{
				left += objParent.offsetLeft;
				top  += objParent.offsetTop;
				parent = parent.offsetParent;
			}
			
			return {top: top, left: left};
		}
			
		function getFoo(e, element) {
			var mouseX = e.clientX;
			var mouseY = e.clientY;
			var pos = getOffsets(element);
			if (pos) {
				var foo_x = mouseX - pos["left"];
				var foo_y = mouseY - pos["top"];
				alert([foo_x, foo_y]);
			}
		}
	</script>
</head>
<body>
	<input type="image" src="1220100104815.jpg" name="foo" id="foo" onclick="getFoo(event, this)"/>
</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 02.10.2008, 17:52
Интересующийся
Отправить личное сообщение для Мел Посмотреть профиль Найти все сообщения от Мел
 
Регистрация: 02.10.2008
Сообщений: 10

Спасибо за помощь.
Ответить с цитированием
  #8 (permalink)  
Старый 02.10.2008, 18:52
Интересующийся
Отправить личное сообщение для Мел Посмотреть профиль Найти все сообщения от Мел
 
Регистрация: 02.10.2008
Сообщений: 10

Андрей Параничев, прошу прощения за навязчивость.
Дело в том, что мне нужно передать эти значения (координаты клика по изображению) на сервер и получить ответ, основанный на них, назаметно для пользователя (без перезагрузки страницы).

Получается, есть только 2 варианта:

либо через скрытый фрейм, с помощью $_GET или $_POST,

либо используя Ваше предложение + XMLHttpRequest (даже без <input type="image"> , а просто <img>) ?

PS: Кстати, задавал такой же вопрос про <input type="image" ...> на форуме посвященном JsHttpRequest, но ответа не получил, видимо с помощью JsHttpRequest тоже нельзя. Извиняюсь, если глупо звучит - только начал разбираться с этой темой.

Последний раз редактировалось Мел, 02.10.2008 в 19:10.
Ответить с цитированием
  #9 (permalink)  
Старый 02.10.2008, 19:07
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Мел,
Да, получается только два варианта. А чем вам помочь?
Ответить с цитированием
  #10 (permalink)  
Старый 02.10.2008, 20:05
Интересующийся
Отправить личное сообщение для Мел Посмотреть профиль Найти все сообщения от Мел
 
Регистрация: 02.10.2008
Сообщений: 10

Андрей Параничев,
большое спасибо, пока больше ничем - надо поюзать.

Я вообще раньше думал, что JavaScript мне никчему - достаточно CSS, PHP. Теперь понял - JavaScript просто необходим. Буду изучать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кодировка при использовании Ajax Nichloas AJAX и COMET 9 17.09.2009 16:06