Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Кнопка-ссылка с передачей параметра (https://javascript.ru/forum/dom-window/31101-knopka-ssylka-s-peredachejj-parametra.html)

Alex7778 29.08.2012 12:02

Хорошо, буду использовать bb-теги.
name[nameid] - переменная в smarty.

bes 29.08.2012 12:31

Не знаю как там в smarty, но вот пример как переменные php добавляются в html-код
$a = 'yes';
$str = '<button onclick = "clicks(\'' . $a . '\')">click</button>';
echo $str;

function clicks(value) {
	alert(value);
}



тогда вообще без name
<form action="http://javascript.ru" method="get">
	<a href="#">param 1</a>
	<a href="#" >param 2</a>
	<input type="hidden" name="name[nameid]">
</form>

<script>
window.onload = function () {
	document.forms[0].onclick = function (e)  {
		var inp = this.children[2];//здесь получаем ссылку на input
		e = e || event;
		var target = e.target || e.srcElement;
		if (target.tagName == 'A') {
			if (target == this.children[0]) {
				inp.value = 1;
			} else {
				inp.value = 2;
			}
			alert(inp.value)
			this.submit();
		}
	}
}
</script>

Alex7778 29.08.2012 14:22

Хорошо, буду использовать bb-теги.
name[nameid] - переменная в темплейте, и исходный код вполне работает.
Строка взята из рабочего кода:
<input type="hidden" name="name[nameid]"  value="1">

При отправки формы, происходит передача параметра. В адресной строки я вижу:
go.php?name[nameid]=1

Alex7778 29.08.2012 14:26

Дело в том, что на страницу go.php необходимо передать значение параметра name[nameid]. Этот параметр нельзя изменить.

bes 29.08.2012 14:45

Цитата:

Сообщение от Alex7778
При отправки формы, происходит передача параметра. В адресной строки я вижу:
go.php?name[nameid]=1

это логично так как передача идёт методом get

Цитата:

Сообщение от Alex7778
Строка взята из рабочего кода:
<input type="hidden" name="name[nameid]"  value="1">

этот name и оставьте, последний js-код от него не зависит, сейчас подправлю

Alex7778 29.08.2012 16:37

Всё заработало! Большое спасибо.
Сразу возник такой вопрос. Дело в том, что каждая из кнопок должна состоять из двух частей (для того, чтобы назначить разные стили). Помогите пожалуйста усовершенствовать скрипт.

<form action="http://javascript.ru" method="get">
	<a href="#" class="style1">param 1</a><a href="#" class="style2">param 1</a>
	<a href="#" class="style1">param 2</a><a href="#" class="style2">param 2</a>
	<input type="hidden" name="name[nameid]">
</form>

bes 29.08.2012 16:58

<form action="http://javascript.ru" method="get">
	<a href="#" class="style1">param 1</a><a href="#" class="style2">param 1</a>
	<a href="#" class="style1">param 2</a><a href="#" class="style2">param 2</a>
	<input type="hidden" name="name[nameid]">
</form>

<script>
window.onload = function () {
	document.forms[0].onclick = function (e)  {
		var inp = this.children[this.children.length - 1];//здесь получаем ссылку на input
		e = e || event;
		var target = e.target || e.srcElement;
		if (target.tagName == 'A') {
			if (target == this.children[0] || target == this.children[1]) {
				inp.value = 1;
			} else {
				inp.value = 2;
			}
			alert(inp.value)
			this.submit();
		}
	}
}
</script>

Alex7778 29.08.2012 17:48

Всё получилось. Спасибо!


Часовой пояс GMT +3, время: 04:09.