parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Никита Козин 14.02.2005 06:59

Все гораздо хуже. Таблицы беруться из формы 8), см. tables. Получение множества значений поля

У меня есть два выпадающих списка и одно текстовое поле. А еще рядом с ними есть две кнопочки (+ и -), сделано как прикрепление файлов к письму на Яндекс.Почте, чтобы можно было добавлять много значений сразу. Ладно, проще и правильнее будет привести код:
@auto[]
^if(def $form:fields){
	^rem{### спектакли ###}
	$perfomances[$form:tables.perfomance]
	^rem{### актеры ###}
	$actors[$form:tables.actor]
	^rem{### роли ###}
	$roles[$form:tables.role]
}
# end @auto[]
##############################

@form[]
^rem{### Скрипт, дублирующий и удаляющий строки таблицы ###}
<script language="JavaScript">
	function drop(btn){
		if(document.getElementById) {
			tr = btn;
			while (tr.tagName != 'TR') tr = tr.parentNode;
			tr.parentNode.removeChild(tr);
			checkForLast();
		}
	}
	function add(btn){
		if(document.getElementById) {
			tr = btn;
			while (tr.tagName != 'TR') tr = tr.parentNode;
			var idSuffix = Math.round(Math.random()*1000);
			var newTr = tr.parentNode.insertBefore(tr.cloneNode(true),tr.nextSibling);
			thisChilds = newTr.getElementsByTagName('td');
			for (var i = 0; i < thisChilds.length; i++){
				if (thisChilds[i].className == 'role') thisChilds[i].innerHTML = '<input type="text" name="role" value="">';
			}
			checkForLast();
		}
	}
	function checkForLast(){
		btns = document.getElementsByName('drop');
		for (i = 0; i < btns.length; i++){
			btns[i].disabled = (btns.length == 1) ? true : false;
		}
	}
</script>

<form action="$request:uri" method="post">
<table cellspacing="0" cellpadding="0" border="0"><tr><td>
	<table cellspacing="0" cellpadding="2" border="0">
		<tr>
			<td>Спектакль:</td>
			<td>Актер:</td>
			<td>Роль:</td>
			<td colspan="2">^spacer[]</td>
		</tr>
		<tr>
			<td>
				^rem{### Список спектаклей ###}
				<select name="perfomance">
					<option value=""></option>
					^perfomances.menu{
						<option value="$perfomances.id">$perfomances.title</option>
					}
				</select>
			</td>
			<td>
				^rem{### Список актеров ###}
				<select name="actor">
					<option value=""></option>
					^actors.menu{
						<option value="$actors.id">$actors.name</option>
					}
				</select>
			</td>
			<td class="role">
				^rem{### Роль выбранного актера в выбранном спектакле ###}
				<input type="text" name="role" value="">
			</td>
			<td><input type="button" name="drop" value=" - " onClick="drop(this)^;"></td>
			<td><input type="button" value=" + " onClick="add(this)^;"></td></td>
		</tr>
	</table>
	<script language="Javascript">if(document.getElementById) checkForLast();</script>
</td></tr></table>
<input type="submit" value="Добавить">
</form>
# end @form[]
##############################