IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Form+Enter и вопрос по голосавалке (https://www.imho.ws/showthread.php?t=111924)

aramis 30.11.2006 23:45

Form+Enter и вопрос по голосавалке
 
1. На странице есть 2 формы. Заполняем одну, нажимаем enter, значение submit-буттона передаётся. Заполняем другую, нажимаем enter, передаётся только значение элементов формы, а значение субмит-буттона - нифига. Кто нибудь сталкивался? Злодей - ИЕ6+7, с Firefox и Opera всё ок.

2.Имеется голосование только для мемберов. Чтобы узнать кто проголосовал, сохраняем в БД пару user+за что голосовал. Есь ли более элегантное решение?


Заранее спасибо

Face 01.12.2006 06:11

aramis
1. HTML-код в студию
2. Я также голосовалку делал. Чем тебя этот вариант не устраивает?

Псих 01.12.2006 09:28

Цитата:

aramis:
Чтобы узнать кто проголосовал, сохраняем в БД пару user+за что голосовал. Есь ли более элегантное решение?
А какое может быть более элегантное решение? Можно id юзера писать, если таковое имеется. Это будет логичнее

aramis 01.12.2006 15:21

1. вот "неработаюший" код, правда вокруг ещё пару дивов
Код HTML:

<form name="passwort_request" action="" method="post" style="margin-top:10px;">
<input type="password" name="album_pass" size="30" maxlength="20"/>
<br/>
<input type="submit" name="submit_album_pass" value="bla" style="margin-top:10px;"/>
</form>'

1. вот "неработаюший" код, правда вокруг ещё пару дивов

Naked 01.12.2006 16:59

Цитата:

aramis:
субмит-буттона - нифига
сделай-ка print_r ($_REQUEST) и посмотри точно ли не передается....;) может с именем ошибаешься, плюс посмотри <form name> - имя у двух форм одинаковое? может в этом ошибочка...но я не уверен..

aramis 01.12.2006 17:47

Цитата:

Сообщение от Naked
сделай-ка print_r ($_REQUEST) и посмотри точно ли не передается....;) может с именем ошибаешься, плюс посмотри <form name> - имя у двух форм одинаковое? может в этом ошибочка...но я не уверен..

через Request я только и узнал что значение субмита не передаётся :) В Request только значение "album_pass" и всё. При нажатии на кнопку всё нормально

Hubbitus 05.12.2006 15:08

Цитата:

aramis:
нажимаем enter, передаётся только значение элементов формы, а значение субмит-буттона - нифига. Кто нибудь сталкивался? Злодей - ИЕ6+7, с Firefox и Opera всё ок.
Цитата:

aramis:
1. вот "неработаюший" код, правда вокруг ещё пару дивов
Не знаю, у меня все работает, в ИЕ 6.0.2900.2180.xpsp_sp2_gdr.050301-1519, также проверял в Опере и ФФ.
Вот пример http://ru.bir.ru/TEST/form_test.php , вот его сурс http://ru.bir.ru/TEST/form_test.txt

Naked 05.12.2006 18:12

Цитата:

Hubbitus:
Вот пример
так вроде две формы, как говорит чел?
Цитата:

aramis:
1. На странице есть 2 формы
приведи плиз весь код страницы - а то в том, что ты написал только одна форма :idontnow: или я чего-то непонял?

Hubbitus 05.12.2006 22:30

Цитата:

Naked:
так вроде две формы, как говорит чел?
Ну какой код привели, такой я и протестировал :biggrin:

aramis 11.12.2006 21:19

извиняюсь, что так долго получилось.
вот "урезаный" код. проверил, в ие форма посередине субмит не передаёт.
если будете пробовать, то в action надо будет название файла подставить, иначе ие GET string не показывает
PHP код:

<body id="body" onload="hideLink()">
<
div id="main">
<
div id="head">
<!-- 
LOGIN -->
 <
div id="login" >
 <
form name="login" method="get" action="album2.htm" style="text-align:right; margin-top:0px;">
                 <
span style="margin-right:5px;">Login:</span>
                 <
input type="text" name="user" style="margin-right:10px; width:100px; border:#999999 1px solid;" size="10" maxlength="16"/>
                 <
br/>
                 <
span style="margin-right:5px;">Password:</span>
                 <
input type="password" name="password" style="margin-right:10px; margin-top:1px; width:100px; border:#999999 1px solid;" size="10" maxlength="16"/>
                 <
br/>
                 <
input type="submit" name="submit_login" value="Login" class="button" style="width:103px" onmouseover="button_over(this); " onmouseout="button_out(this);"/>
                 <
br/>
                 <
a href="http://192.168.1.35/fotos/register" style="margin-right:10px; margin-top:1px;">Registrieren</a>
                 </
form
 </
div>

 <!-- 
LOGO -->
 <
div id="logo">
 <
span style="font-size:16px; font-weight:bold; color:#000099;">balalala</span>
 </
div>

<!-- 
MENU -->
  <
div id="menu">
  </
div>
 <!-- 
SUCHE -->
 <
div id="search">

 </
div
 <!-- 
UPLOAD -->
  <
div id="upload">
  
  </
div>
  
 <!-- 
PATH -->
 <
div id="path"></div>
</
div><!-- END OF HEAD -->
<!-- 
BANNER -->
<
div id="banner" onclick="hideAll()">AAAAAA</div>
<!-- 
PREVIEW -->
<
div id="preview"  onclick="hideAll()"></div>
<!-- 
CONTENT -->
<
div id="content" style="text-align:center;"  onclick="hideAll()">
<
br/>
            
Geben sie das Passwort ein:
            <
form name="passwort_request" action="album2.htm" method="get" style="margin-top:10px;">
                <
input type="password" name="album_pass" size="30" maxlength="20"/>
                <
br/>
                <
input type="submit" name="submit_album_pass" value="Lass mich rein!" style="margin-top:10px;"/>
            </
form>    <div style="width:100%; height:30px; position:relative;    top:0px;left:0px;">&nbsp;</div>
</
div>
</
div><!-- END OF MAIN -->
</
body>
</
html


Face 12.12.2006 08:16

Залил страницу на Денвер, ввел "123", вывел var_dump($_REQUEST):
Код:

Array(2) { ["album_pass"]=>  string(3) "123" ["submit_album_pass"]=>  string(15) "Lass mich rein!" }
Залил сюда: _http://hermit.territory.ru/test.php , то же самое... :idontnow:

Попробуй поменять имя переменной "submit_album_pass" на какое-нибудь другое

PhoeniX 12.12.2006 15:39

Цитата:

Face:
Залил страницу на Денвер, ввел "123", вывел var_dump($_REQUEST):

Код:
Array(2) { ["album_pass"]=> string(3) "123" ["submit_album_pass"]=> string(15) "Lass mich rein!" }

Залил сюда: _http://hermit.territory.ru/test.php , то же самое...

Попробуй поменять имя переменной "submit_album_pass" на какое-нибудь другое
Вы, похоже смысла вопроса не уловили, если кликать мышкой по кнопке - то все прекрасно передается, а вот если нажать Enter (читаем название темы) - вот тут возникает проблема, в приведенном вами примере проблема существует.

to aramis
экспериментально я вычислил, что если поставить здесь (во второй форме) второе поле ввода (input type=text), то все нормально начинает работать,
теоретической базы под это подвести пока не могу, равно как и не могу дать решение проблемы, но теперь имеется направление, в котором нужно копать...


а вот и теория, может чем-то поможет:
Если в форме присутствует одно единственное поле ввода, и мы в него осуществили ввод и после этого нажали на кнопку клавиатуры Enter, то браузер сгенерирует событие submit. Перехватить такое событие и обработать можно только за счет программы обработки события submit в контейнере FORM, как это и сделано в примере.

получается, что если одно поле ввода, то сразу генерируется событие, а если их несколько, то происходит как бы клик по кнопке, а та генерирует событие



решить проблему двух форми кроссбраузерности может помочь использование hidden полей-идентификаторов форм

Face 12.12.2006 19:55

В FireFox 2.0 все работает так, как должно... в IE 7.0 такой глюк есть... самый лучший выход - использовать
Код:

<input type="hidden" name="submit_album_pass" value="Lass mich rein!">

aramis 12.12.2006 20:44

остановились на следующем:
так как второй input нам был ни к чему, надо было что-то невидимое. hidden свою роль не выполнил(субмит не передаётся). сделали обыкновенный input type="text" и поставили его на display:none. работает. всем спасибо :)


Часовой пояс GMT +4, время: 05:19.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.