Skrypt po kliknięciu "dodaj podstronę" dodaje DIV w którym jest input typu text, textarea oraz przycisk usuwający dodaną podstronę. Nadaje im NAME oraz ID kolejno:
//FUNCTION TO ADD TEXT BOX ELEMENT function addElement(nu) { var contentID = document.getElementById("content-str"); var divs=contentID.getElementsByTagName('DIV'); if (divs.length<nu){ var newTBDiv = document.createElement("div"); newTBDiv.innerHTML = "<label></label><br/><input type='text' ><br/><br/><label></label><br/><textarea></textarea><br/><input type='button' onclick='removeElement(this)' value='Usuń tą podstronę' style='float:right'><br/><br/>"; contentID.appendChild(newTBDiv); ids(contentID); } } function ids(contentID){ var divs=contentID.getElementsByTagName('DIV'); var nu=divs.length; for (var ip,nip,z0=0;z0<divs.length;z0++){ divs[z0].id='strText'+(z0+1); ip=divs[z0].getElementsByTagName('INPUT')[0]; nip=zxcFormField('INPUT','tytul'+(z0+1),'text'); nip.id='tytul'+(z0+1); nip.value=ip.value; nip.style.width='600px'; divs[z0].replaceChild(nip,ip); ip=divs[z0].getElementsByTagName('TEXTAREA')[0]; nip=zxcFormField('TEXTAREA','tresc'+(z0+1)); nip.id='tresc'+(z0+1); nip.value=ip.value; nip.cols='20'; nip.rows='7'; nip.style.width='600px'; nip.style.height='160px'; divs[z0].replaceChild(nip,ip); ip=divs[z0].getElementsByTagName('LABEL'); ip[0].innerHTML='Tytuł podstrony nr '+(z0+1); ip[1].innerHTML='Treść podstrony nr '+(z0+1); } } function zxcFormField(tag,nme,type){ var el; try { el=document.createElement('<'+tag+(type?' type='+type:'')+' name='+nme+' >'); } catch (e){ el=document.createElement(tag); if (type) el.type=type; el.name=nme; } return el; } //FUNCTION TO REMOVE TEXT BOX ELEMENT function removeElement(obj) { while(obj.parentNode&&obj.nodeName.toUpperCase()!='DIV'){ obj=obj.parentNode; } var contentID = document.getElementById("content-str"); if(contentID.getElementsByTagName('DIV')[1]&&obj.nodeName.toUpperCase()=='DIV') { contentID.removeChild(obj); } ids(contentID); }
dla pola input: tytul[nr kolejny]
dla pola textarea: tresc[nr kolejny]
Nie nadaje natomiast sesji... Tak więc pytanie pierwsze do experta: Jak w tym skrypcie dodać do tego sesję dla:
Pytanie drugie: skrypt pozwala usuwać dodane DIV'y, ale tylko drugi, trzeci, czwarty itd... Pierwszego usunąć nie można. Podejrzewam, że to jakaś błahostka, może to ktoś naprawić?
['myForm']['tytul(nr kolejny)'] - input ['myForm']['tresc(nr kolejny)'] - textarea