Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.01.2012, 00:17
Новичок на форуме
Отправить личное сообщение для pozharko Посмотреть профиль Найти все сообщения от pozharko
 
Регистрация: 25.08.2011
Сообщений: 7

this.form.submit()
Здравствуйте!

Есть форма с несколькими кнопками отправки, вроде
<form method = 'POST' action='действие>
<input type='button' name='n1' value='n1' onClick="this.form.submit();">
<input type='button' name='n2' value='n2' onClick="this.form.submit();">
</form>


Вопрос - как потом в php обработчике понять, на какую из этих кнопок нажали? Или что нужно изменить в коде, чтобы в php обработчике появилась переменная $_POST['n1'] при нажатии на первую кнопку?
Спасибо)

Последний раз редактировалось pozharko, 26.01.2012 в 00:19.
Ответить с цитированием
  #2 (permalink)  
Старый 26.01.2012, 00:31
Аспирант
Отправить личное сообщение для qwertyuiop10 Посмотреть профиль Найти все сообщения от qwertyuiop10
 
Регистрация: 29.09.2011
Сообщений: 42

Менять экшен, но это get. Менять значение <input type="hidden"/> - post
Ответить с цитированием
  #3 (permalink)  
Старый 26.01.2012, 04:15
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

<form action="" method="post">
    <input type="submit" name="submitButton" value="oneButton" />
    <input type="submit" name="submitButton" value="twoButton" />
</form>
в пхп придет переменная $_POST['submitButton'] в ней будет значение нажатой кнопки. то-есть то значение что указано в атрибуте value у нажатой кнопки.
Ответить с цитированием
  #4 (permalink)  
Старый 26.01.2012, 12:06
Новичок на форуме
Отправить личное сообщение для pozharko Посмотреть профиль Найти все сообщения от pozharko
 
Регистрация: 25.08.2011
Сообщений: 7

Как раз раньше так и делал, но при type="submit" в IE по нажатию enter идет отправка формы, что есть очень вредно в моем случае.
Ответить с цитированием
  #5 (permalink)  
Старый 26.01.2012, 12:47
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Можно отправлять с аяксом.
Я с помощью jquery по ентрер запрещал отправку, а форму отправлял по клику, внимание!, по span!
Ответить с цитированием
  #6 (permalink)  
Старый 26.01.2012, 13:54
Новичок на форуме
Отправить личное сообщение для pozharko Посмотреть профиль Найти все сообщения от pozharko
 
Регистрация: 25.08.2011
Сообщений: 7

Тогда такой вопрос - как запретить отправку формы по enter чтобы при этом энтер работал для выбора из выпадающих списков? Кароче, чтобы он работал для всего, кроме отправки формы как раньше.
Ответить с цитированием
  #7 (permalink)  
Старый 26.01.2012, 14:05
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

<form action="" method="post">
    <input type="text" name="blah" value="" />
    <input type="submit" name="submitButton" value="oneButton" onblur="this._focused=false;" onfocus="this._focused=true;" onclick="if ( !this._focused ) return false;" />
    <input type="submit" name="submitButton" value="twoButton" onblur="this._focused=false;" onfocus="this._focused=true;" onclick="if ( !this._focused ) return false;" />
</form>
Ответить с цитированием
  #8 (permalink)  
Старый 26.01.2012, 14:08
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Предложу такой вариант для всего сразу...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<tdnk rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function go(Type) {
	document.getElementById('type').value=Type;
	document.getElementById('frm').submit();
};
function ok() {
	if (document.getElementById('type').value=='') {
		alert('Нажми кнопку...');
		return false;
	}
	return true;
};
</script>
</head>
<body>
<form id='frm' method = 'POST' action='tmp.html' onsubmit='return ok()'>
	<input type='test' />
	<input type='hidden' id='type' value='' />
	<input type='button' name='n1' value='n1' onClick="go(1);" />
	<input type='button' name='n2' value='n2' onClick="go(2);" />
</form>
</body>
</html>
Ответить с цитированием
Ответ



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

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