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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2011, 02:39   #1
Mr_freeman
Форумчанин
 
Аватар для Mr_freeman
 
Регистрация: 17.01.2010
Сообщений: 277
По умолчанию Обработка нажатия динамической кнопки

Всем привет!
Возникла такая проблема:
Есть таблица с кнопками, вот фрагментик:


Кнопки создаются циклически, двумя for'ами:

PHP код:
...
echo 
"<input type = "image" src = "free.gif"/>";
print(
'<input type="hidden" name="hid'.$i.','.$j.'" value = "yes"/>');
... 
Потом решил проверить, как обрабатывается нажатие:

PHP код:
for ($i 1$i <= $row[2]; ++$i)
{
for (
$j 1$j <= $row[3]; ++$j)
{
if (isset(
$_POST['hid'.$i.','.$j]))
{
 echo <<<_END
  ($j , $i);
_END;
}
}

Должны вывестись два числа (как бы координаты нажатой кнопки, так как для меня это главное - узнать какая кнопка нажата), но вывелось вот такая штука:
(1 , 1); (2 , 1); (3 , 1); (4 , 1); (5 , 1); (6 , 1); (7 , 1); (8 , 1); (9 , 1); (10 , 1); (11 , 1); (12 , 1); (13 , 1); (14 , 1); (15 , 1); (16 , 1); (17 , 1); (18 , 1); (19 , 1); (20 , 1); (1 , 2); (2 , 2); (3 , 2); (4 , 2); (5 , 2); (6 , 2); (7 , 2); (8 , 2); (9 , 2); (10 , 2); (11 , 2); (12 , 2); (13 , 2); (14 , 2); (15 , 2); (16 , 2); (17 , 2); (18 , 2); (19 , 2); (20 , 2); (1 , 3); (2 , 3); (3 , 3); (4 , 3)...и т. д.

Подскажите, что я сделал не так?????
Mr_freeman вне форума Ответить с цитированием
Старый 28.11.2011, 03:49   #2
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

А вы знаете толк в извращениях))) Вы свои скрытые поля выводите в каждой ячейке вместе с картинкой ... ну вам и приходят все их значения .... Как бы надо создать одно скрытое поле для всей формы куда запишите координаты и их передадите , или на сами кнопки image вешать name с координатами .... хотя в любом случае это слишком "жесткий" метод))) Если понадобится, могу за "спасибо" рассказать как такое можно сделать парой строчек на jquery

Последний раз редактировалось Cronos20; 28.11.2011 в 03:52.
Cronos20 вне форума Ответить с цитированием
Старый 28.11.2011, 11:50   #3
Mr_freeman
Форумчанин
 
Аватар для Mr_freeman
 
Регистрация: 17.01.2010
Сообщений: 277
По умолчанию

Я люблю жесткие методы :D с jquery я пока не знаком, мне еще рано до него) буду очень очень благодарен, если вы напишите тем "жестким способом", о котором говорили))
Mr_freeman вне форума Ответить с цитированием
Старый 28.11.2011, 14:45   #4
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Да просто если уж вы взялись за всякие визуальные эффекты и какую-то динамику на странице, то php - это не то решение, без javascript здесь никуда.
Cronos20 вне форума Ответить с цитированием
Старый 28.11.2011, 15:39   #5
Mr_freeman
Форумчанин
 
Аватар для Mr_freeman
 
Регистрация: 17.01.2010
Сообщений: 277
По умолчанию

Может тогда просвятите для моего конкретного случая? А то я в js не бум бум совсем, а лабу надо сдавать скоро, нет времени изучать сейчас.
Mr_freeman вне форума Ответить с цитированием
Старый 28.11.2011, 16:26   #6
БалаШагаЛ
Форумчанин
 
Регистрация: 11.02.2011
Сообщений: 131
По умолчанию

Гуглите document.getElementById(). Там всё просто. К сожалению, код кинуть пока не могу.
БалаШагаЛ вне форума Ответить с цитированием
Старый 28.11.2011, 16:32   #7
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

PHP код:
<?
В цикле 
:
{
echo 
"<img data-x='".$i."' data-y='".$j."' src='free.gif' onclick='clickImage(this)' />"
}
?>
//Форма отправки координат
<form id='form' method='post' action='....'>
<input type='hidden' id='coordinats' name="coordinats"/>
</form>
<script>
function clickImage(image)
{
    document.getElementById('coordinats').value = image.dataset.x + "-" +   image.dataset.y ; // при клике по картинке в скрытое поле добавили координаты
 document.getElementById('form').submit(); // отправили форму
}
</script>
Как-то так .. быстро написал, не проверял

Последний раз редактировалось Cronos20; 28.11.2011 в 16:36.
Cronos20 вне форума Ответить с цитированием
Старый 28.11.2011, 17:04   #8
Mr_freeman
Форумчанин
 
Аватар для Mr_freeman
 
Регистрация: 17.01.2010
Сообщений: 277
По умолчанию

Спасибо, постараюсь разобраться... Но все таки если кому несложно, подскажите как сделать это на php, по моему примеру. Наверняка это не очень сложно, просто я еще только начинаю на php программировать, а js еще не скоро думаю начну изучать.
Mr_freeman вне форума Ответить с цитированием
Старый 28.11.2011, 20:23   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Mr_freeman Посмотреть сообщение
а js еще не скоро думаю начну изучать.
JS можно начать изучать, не дожидаясь его по вашей программе обучения - было бы желание.
Основы Jquery вполне изучаются за 1-2 вечера после занятий, а на вашу задачу(селекторы+события) - так вообще делов на час-полтора.

Другой вопрос - нужно ли это вам...
Andkorol вне форума Ответить с цитированием
Старый 28.11.2011, 23:34   #10
Mr_freeman
Форумчанин
 
Аватар для Mr_freeman
 
Регистрация: 17.01.2010
Сообщений: 277
По умолчанию

Всем спасибо) вот сижу JS учу)
Mr_freeman вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка события нажатия кнопки masm Microsoft Office Access 6 22.08.2011 11:21
событие нажатия кнопки CodeNOT Общие вопросы C/C++ 0 05.01.2011 00:04
Обработка нажатия кнопки на форме myprog Microsoft Office Access 8 17.12.2010 22:37
Дата нажатия кнопки Jantar Общие вопросы Delphi 2 29.10.2009 10:27
Эмуляция нажатия кнопки F3 Dimixis Помощь студентам 4 17.06.2007 23:42