URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 7643
[ Назад ]

Исходное сообщение
"Обработка нажатия кнопок в html-форме"

Отправлено InfinityNsu , 29-Ноя-12 13:50 
Здравствуйте!

Вопрос глупый наверное, но но я только начинаю с веб-программированием разбираться :) . Проблема такая: есть html фотма, там всякие разные поля, надо сделать несколько кнопочек, по которым с этими данными из полей проводятся различные действия. Надо, чтобы на кнопочках были картинки.
Делала так:


<form name="form1" method="post" action="moving/move_carriege.php">
       тут всякое про поля
<input type="image" src="images/arrow_left.png" name="arrow_left" value="влево">
<input type="image" src="images/arrow_right.png" name="arrow_right" value="вправо">
</form>

В php-скрипте, который вызывается по нажатию, есть такие строчки на проверку нажатия кнопок:

if (isset($_POST['arrow_left'])) {
   что-то делаем
} else if (isset($_POST['arrow_right'])) {
   делаем что-то другое
}

Этот код чудно работает в хроме, но вот в остальных браузерах (проверяла в огнелисе, эксплорере и опере) ни одно условие не выполняется :(((
Начинает работать если в input заменить type на submit, но тогда не поставить картинку(((
Подскажите, пожалуйста, что не так?

Содержание

Сообщения в этом обсуждении
"Обработка нажатия кнопок в html-форме"
Отправлено XAnder , 29-Ноя-12 16:31 
Сам не пробовал, но вот тут:

http://www.w3.org/TR/html401/interact/forms.html#h-17.4.1 -- кстати, это первое место, куда бы вам стоило было взглянуть в поисках ответа на свой вопрос ;-)

среди прочего сказано:

The submitted data includes name.x=x-value and name.y=y-value...

А вот про то, что эти "submitted data" должны содержать просто "name=что-то", не сказано. Так что браузеры ведут себя адекватно, но Хром, похоже, добавляет чуток отсебятины. Короче, проверяйте $_POST['arrow_left.x'] и иже с ним.


"Обработка нажатия кнопок в html-форме"
Отправлено beza2000 , 30-Ноя-12 11:00 
>[оверквотинг удален]
>        тут всякое про поля
> <input type="image" src="images/arrow_left.png" name="arrow_left" value="влево">
> <input type="image" src="images/arrow_right.png" name="arrow_right" value="вправо">
> </form>
>

> Этот код чудно работает в хроме, но вот в остальных браузерах (проверяла
> в огнелисе, эксплорере и опере) ни одно условие не выполняется :(((
> Начинает работать если в input заменить type на submit, но тогда не
> поставить картинку(((
> Подскажите, пожалуйста, что не так?

Добавить в каждый input onClick=document.form1.submit();
Но есть куча способов сделать это по другому.


"Обработка нажатия кнопок в html-форме"
Отправлено XAnder , 30-Ноя-12 12:58 
> Добавить в каждый input onClick=document.form1.submit();

Бесполезно. Параметры arrow_left/arrow_right в $_POST от этого не появятся.


"Обработка нажатия кнопок в html-форме"
Отправлено alexmasz , 30-Ноя-12 13:53 
> Здравствуйте!
> Подскажите, пожалуйста, что не так?

а вы $_POST[] попробуйте вывести перед своим if {} else {};
присутсвуют данные? нет? а почему?


"Обработка нажатия кнопок в html-форме"
Отправлено NadyBear , 26-Мрт-13 17:22 
>[оверквотинг удален]
>    что-то делаем
>  } else if (isset($_POST['arrow_right'])) {
>    делаем что-то другое
>  }
>
> Этот код чудно работает в хроме, но вот в остальных браузерах (проверяла
> в огнелисе, эксплорере и опере) ни одно условие не выполняется :(((
> Начинает работать если в input заменить type на submit, но тогда не
> поставить картинку(((
> Подскажите, пожалуйста, что не так?