Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][JavaScript]Sesja dla pola INPUT oraz TEXTAREA
ixtab
post 26.09.2010, 18:56:00
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 25.09.2010

Ostrzeżenie: (0%)
-----


Najpierw kod, później wyjaśnię problem.
  1. //FUNCTION TO ADD TEXT BOX ELEMENT
  2. function addElement(nu) {
  3. var contentID = document.getElementById("content-str");
  4. var divs=contentID.getElementsByTagName('DIV');
  5. if (divs.length<nu){
  6. var newTBDiv = document.createElement("div");
  7. newTBDiv.onclick=function(){ current=this; }
  8. 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/>";
  9. contentID.appendChild(newTBDiv);
  10. ids(contentID);
  11. }
  12. }
  13. function ids(contentID){
  14. var divs=contentID.getElementsByTagName('DIV');
  15. var nu=divs.length;
  16. for (var ip,nip,z0=0;z0<divs.length;z0++){
  17. divs[z0].id='strText'+(z0+1);
  18. ip=divs[z0].getElementsByTagName('INPUT')[0];
  19. nip=zxcFormField('INPUT','tytul'+(z0+1),'text');
  20. nip.id='tytul'+(z0+1);
  21. nip.value=ip.value;
  22. nip.style.width='600px';
  23. divs[z0].replaceChild(nip,ip);
  24. ip=divs[z0].getElementsByTagName('TEXTAREA')[0];
  25. nip=zxcFormField('TEXTAREA','tresc'+(z0+1));
  26. nip.id='tresc'+(z0+1);
  27. nip.value=ip.value;
  28. nip.cols='20';
  29. nip.rows='7';
  30. nip.style.width='600px';
  31. nip.style.height='160px';
  32. divs[z0].replaceChild(nip,ip);
  33. ip=divs[z0].getElementsByTagName('LABEL');
  34. ip[0].innerHTML='Tytuł podstrony nr '+(z0+1);
  35. ip[1].innerHTML='Treść podstrony nr '+(z0+1);
  36. }
  37. }
  38. function zxcFormField(tag,nme,type){
  39. var el;
  40. try {
  41. el=document.createElement('<'+tag+(type?' type='+type:'')+' name='+nme+' >');
  42. }
  43. catch (e){
  44. el=document.createElement(tag);
  45. if (type) el.type=type;
  46. el.name=nme;
  47. }
  48. return el;
  49. }
  50. //FUNCTION TO REMOVE TEXT BOX ELEMENT
  51. function removeElement(obj) {
  52. while(obj.parentNode&&obj.nodeName.toUpperCase()!='DIV'){
  53. obj=obj.parentNode;
  54. }
  55. var contentID = document.getElementById("content-str");
  56. if(contentID.getElementsByTagName('DIV')[1]&&obj.nodeName.toUpperCase()=='DIV') {
  57. contentID.removeChild(obj);
  58. }
  59. ids(contentID);
  60. }
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:
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:
  1. ['myForm']['tytul(nr kolejny)'] - input
  2. ['myForm']['tresc(nr kolejny)'] - textarea
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ć?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 15:27