Dynamiczne nadawanie id

0

Witam
W moim formularzu chcę dynamicznie dodawać (za pomocą przycisku) nowy textbox pod innymi textboxami w tej samej grupie.
Pytanie i możliwych kilka odpowiedzi w formularzu. Jako, że textboxy należą do jednej grupy i muszę potem je w osobnych rekordach do bazy dodać, to chciałam im nadawać tą samą nazwę z innym nr (czyli np. odp1, odp2, odp3). Problem w tym, że dodaje mi stale taką samą nazwę i id.
Oto kod:

function DodajElement()
{
var element = document.createElement('input');
element.setAttribute('type', 'text');
var liczba = 0;
var ilosc = document.forms['formularz'].elements.length;
	for (var i = 0; i < ilosc; i++ )
	{
		if (element.id == /^odp/)
		{
			liczba += 1;
		}
	}
	
	element.setAttribute('name', 'odp'+(liczba+1));
	element.setAttribute('id', 'odp'+(liczba+1))
	element.style.display = "block";
	element.style.margin= "2px";
	element.style.width="50%";
	
	
var kolejny = document.getElementById('add');
document.forms['formularz'].insertBefore(element,kolejny);

}
 

Teraz też wpadłam na pomysł, aby przy tworzeniu nowego elementu nadawano im tę samą klasę po prostu i po tej klasie może dodawało do bazy, a id byłoby tutaj nieistotne tylko tyle, że nadawane już w bazie (autoinkrementacja)...?

0

no dodawanie ID w javascripcie to zły pomysl, co jak dwóch użytkowników skorzysta z tego na raz --- będziesz miał duplikowane ID

Błąd jest zapewne w linii if (element.id == /^odp/) bo: http://i.imgur.com/nmr4p.jpg - match jest tu rozwiązaniem

0

Jeśli chodzi o id, to ma być tylko takie na potrzeby przesłania w danej chwili, żeby ponumerowało textboxy ile ich jest w formularzu i każdy z nich, z unikalnym id całej ankiety prześle do bazy.
W bazie każda odpowiedź będzie miała unikalny id i id samej ankiety. Nie wiem czy wyraziłam się jasno, starałam się wyjaśnić to najprościej jak umiem... ;)

0

Jeszcze jedna rzecz mnie nurtuje... Jeśli chcę dodawać kilka elementów (np. zawartość textobxa) - zapisać jeden element, że się tak wyrażę "w chmurze" i wyczyścić textboxy, żeby móc wprowadzić dane i dopisać je do reszty, a dopiero na koniec wszystkie razem wrzucić do bazy, to czym to zrobić? Ciasteczka? Czy coś innego będzie dobrym sposobem?

1 użytkowników online, w tym zalogowanych: 0, gości: 1