IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   Две кнопки Submit??? (http://www.imho.ws/showthread.php?t=58413)

Psionic Vision 11.05.2004 15:59

Две кнопки Submit???
 
На данном форуме сейчас (впрочем, и раньше было) есть две кнопки типа sumbit - "Новая Тема" и "Расширенный Режим".
Как это работает? Ведь это внутри одной формы?

Saruman 11.05.2004 16:18

Neo
А правой кнопкой кликнуть на странице и выбрать "View Source"? 8)
Код:

<input type="submit" class="button" value="Отправить быстрый ответ" accesskey="s" title="(Alt + S)" name="sbutton" tabindex="2" onclick="this.form.clickedelm.value=this.value" />
<input type="submit" class="button" value="Расширенный режим" accesskey="x" title="(Alt + X)" name="preview" tabindex="3" id="qr_preview" onclick="this.form.clickedelm.value = this.value" />

Как видишь, у каждой просто указан параметр value и по onClick перед непостредственной отправкой формы он выставляется в отдельную переменную для индикации того, какой именно сабмит был нажат.

Psionic Vision 11.05.2004 23:25

Ты немного недопонял. Мне интересно, каким образом PHP скрипт знает, какая кнопка была нажата. Он ведь переводит это в переменную action...
Подозреваю, что здесь скорее играет роль назания кнопки - sbutton или preview.

Saruman 11.05.2004 23:50

Neo
Я тебя прекрасно допонял 8)
Обрабатывать тот код, который присутствует на этой странице, можно двумя способами:
1. Т.к. при нажатии на сабмит его value помещается в поле clickedelm (которое, ессно, тоже передается скрипту), то можно просто смотреть, какое значение было передавно в данной переменной и делать соответствующие выводы.
2. Можно делать и так, как ты сказал. При нажатии на сабмит, кроме переменных, явно определенных в форме, создается еще одна переменная, имя которой = параметру name кнопки submit, а значение - параметру value ее же. Соответственно, смотришь, какая из переменных задана, и понимаешь, что было нажато.

Psionic Vision 12.05.2004 00:56

#1. А что если JavaScript отключен??? Или value изменено в шаблоне?
#2. Как можно через php скрипт получить name кнопки submit? В принципе, этот вопрос я и имел ввиду с самого начала.

Hubbitus 12.05.2004 01:25

Цитата:

Neo:
#2. Как можно через php скрипт получить name кнопки submit? В принципе, этот вопрос я и имел ввиду с самого начала.
Будет создана переменная с этим именем и содержанием value. Например переменная $sbutton получит значение "Отправить быстрый ответ". Просто проверяешь две переменные и все.

Saruman 12.05.2004 01:48

Neo
Цитата:

#1. А что если JavaScript отключен???
Тогда первый способ обламывается и остается второй.
Цитата:

Или value изменено в шаблоне?
Не понял вопроса

Psionic Vision 12.05.2004 02:55

Цитата:

Hubbitus:
Будет создана переменная с этим именем и содержанием value. Например переменная $sbutton получит значение "Отправить быстрый ответ". Просто проверяешь две переменные и все.
Значит, создается ТОЛЬКО переменная по имени нажатой кнопки, а вторая кнопка сабмит игнорируется?

Hubbitus 12.05.2004 02:58

Именно, вторая игнорируется.

Psionic Vision 12.05.2004 03:45

ОК, спасибо. Это все, что я хотел знать. :)


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

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