Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> aktualny formularz
Apo
post
Post #1





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


Witam
Chciałem sie zapytać jak wyświetlić nazwe aktualego formularza. Doszedłem do takiego czegoś:
  1. <form name="foo">
  2. <script type="text/javascript">
  3. alert(this.form.name);
  4. </form>

No i powinno wyswietlic foo, ale tylko błąd wyświetla ;/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
TomASS
post
Post #2





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


A tak możesz spróbować? :
  1. function $(id){
  2.      return document.getElementById(id);
  3. }
  4.  
  5. function show_atributes(element){
  6.        var properties;
  7.        for (i in $(element)) {
  8.            properties += i;
  9.            properties += ' , ';
  10.      }
  11.      alert(properties);
  12. }
  13. <form name="foo" id="fff">
  14. <script type="text/javascript">
  15. show_atributes('fff');
  16. alert($('fff').name);
  17. </form>

Czy raczej nie o to chodziło?


--------------------
Go to the top of the page
+Quote Post
Apo
post
Post #3





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


TomASS ty mi napisałeś funkcje w Ajax, a ja chciałem tylko odpowiedz jak moge to uzyskac przez this.form tongue.gif Ale dzięks smile.gif
Go to the top of the page
+Quote Post
TomASS
post
Post #4





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Cytat
TomASS ty mi napisałeś funkcje w Ajax

blink.gif

Przecierz to 'czysty' JS, tak samo jak:
  1. alert(this.form.name);

Możesz napisać:
  1. alert(document.getElementById('fff').name);


--------------------
Go to the top of the page
+Quote Post
Apo
post
Post #5





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


Cytat(TomASS @ 2006-04-20 17:36:36)
Cytat
TomASS ty mi napisałeś funkcje w Ajax

blink.gif

Przecierz to 'czysty' JS, tak samo jak:

hmm takiego czegoś jeszcze nie widziałem $(id) tongue.gif
A to this.form.name jest mi potrzebne do bbcode.
Mam powiedzmy sobie formularz o nazwie 'dodaj_notatki' i w nim przyciski button z akcja onclick do funkcji bbcode. onclick="bbcode(nazwa_form lub element tablicy, '');
No i po kliknięciu jesteśmy odsyłaniu do funkcji:
  1. bbcode(formularz, code)
  2. {
  3. document.form[formularz].poletxt.value += code;
  4. }

I chciałem tez argument 'formularz' właśnie zrobić jako this.form.name przy zdarzeniu onclick smile.gif Tylko nie wiem czy sie da to tak zrobic jak pisze, czy musze napisać funkcje do tego.
Go to the top of the page
+Quote Post
TomASS
post
Post #6





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Zakładam, że te formularze generowane są w jakieś pętli i nie znasz ich dokładnych nazw i ich ilości - bo jeśli byłby jeden formularz to nie ma sensu robić czegoś takiego.

Jeśli jest kilka to możesz zrobić tak podczas generowania formularzy:
1. W pętli generujesz formularz o id='formularz'.$i gdzie $i jest licznikiem
2. Dodajesz funkcje JS bbcode('formularz'.$i,'');
3. Zwiekszasz licznik $i

A funkcja JS wygląda tak:
Kod
function $(id){
     return document.getElementById(id);
}

bbcode(formularz, code){
$('formularz').poletxt.value += code;
}

Może tak być? Mam nadzieję, że dobrze zrozumiałem smile.gif


--------------------
Go to the top of the page
+Quote Post
ali
post
Post #7





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 11.12.2003
Skąd: Rybnik

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


a jak przekazac nazwe obiektu textarea i input do funkcji?? bo chce zrobic tez cos na wzor bbcode tylko dla kilku okienek z jedna grupa przyciskow b,i,u.... jak narazie to [znaczniki] wskakuja mi do z gory okreslonego textarea, a chcialbym zeby wskakiwaly do tego, ktory akutalnie edytuje


--------------------
Staraj się nie spieprzyć roboty. Niektórych to ucieszy, pozostałych zdziwi.
www.mobiline.pl
Go to the top of the page
+Quote Post
TomASS
post
Post #8





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


To chyba nie tak prosto wykryć textarea, którego właśnie edytujesz, aby przypisać do niego jakąś akcję.

Ja bym to zrobił tak:
1. pole input typu hidden <input type="hidden" id="pole" value="">
2. do kazdego tekstarea dodalbym onClick lub onFocus = 'zmien_wartosc_w_polu_ukrytym_na_id_tego_inp'
3. I teraz w tym polu ukrytym masz id aktualnie edytowanego texarea

Może da się prościej? Tylko jak? blink.gif


--------------------
Go to the top of the page
+Quote Post
LBO
post
Post #9





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Cytat
Może da się prościej? Tylko jak?

A może do każdego textarea dodać onclick lub onfocus a w tych trigerach wywołać function_action(this.id).

edit: po zastanowieniu chyba o to chodziło TomASS'owi. Ale pokazałem impementacje jego pomysłu:
Kod
id="identyfikator" onclick="passID(this.id)"


Ten post edytował LBO 21.04.2006, 10:49:05
Go to the top of the page
+Quote Post
ali
post
Post #10





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 11.12.2003
Skąd: Rybnik

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


dzieki wielkie... meczylem, meczylem i udalo mi sie przerobic na cos takiego
Cytat
<script language="javascript">
var b = 2;

function tag(v, tagopen, newbut, tagclose, oldbut, name, field) {
  if(eval(v)%2 == 0){
   eval("window.document.editform."+name+".value = newbut;");
   var windows = window.document.editform.field.value;
   var tresc = eval("window.document.editform."+windows+".value;");
   eval("window.document.editform."+windows+".value = window.document.editform."+windows+".value + tagopen;");
   eval("window.document.editform."+windows+".focus();");
  }else{
   eval("window.document.editform."+name+".value = oldbut;");

   var windows = window.document.editform.field.value;
   eval("window.document.editform."+windows+".value = window.document.editform."+windows+".value + tagclose;");
   eval("window.document.editform."+windows+".focus();");
  }
  eval(v+"++;");
  }
</script>

<form action="" method="post" name="editform">

<input type="hidden" id="field">
<textarea id="post1" onclick="document.editform.field.value = this.id">tresc post1</textarea><br><br>
<textarea id="post2" onclick="document.editform.field.value = this.id">tresc post2</textarea><br><br>
<textarea id="post3" onclick="document.editform.field.value = this.id">tresc post3</textarea><br><br>

<input type="button" value="B" name="b" onclick="java script:tag('b','', 'B*', '', 'B', 'b', 'document.editform.field.value');" >
<input type="submit">
</form>


... pewnie sie da to jakos zoptymalizowac, no ale nie za bardzo umie js smile.gif

Ten post edytował ali 21.04.2006, 15:53:29


--------------------
Staraj się nie spieprzyć roboty. Niektórych to ucieszy, pozostałych zdziwi.
www.mobiline.pl
Go to the top of the page
+Quote Post
TomASS
post
Post #11





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


@LBO:
Cytat
Cytat
Może da się prościej? Tylko jak?

A może do każdego textarea dodać onclick lub onfocus a w tych trigerach wywołać function_action(this.id).
edit: po zastanowieniu chyba o to chodziło TomASS'owi. Ale pokazałem impementacje jego pomysłu:

Kod
id="identyfikator" onclick="passID(this.id)"

To może lepiej najpierw się zastanowić a później (nie)pisać.

@ali:
Twój skrypt wywala mi błędy JS pod IE.Tak chyba będzie lepiej:

  1. <script language="javascript">
  2. var otwarte = 0;
  3.  
  4. function $(id){
  5.       return document.getElementById(id);
  6. }
  7.  
  8. function dodaj_tag(tag){
  9.      var active = $('field').value;
  10.      if(!otwarte){
  11.            $(active).value=$(active).value+'['+tag+']';
  12.            $('bb_b').value = '/B';
  13.            otwarte = 1;
  14.      }
  15.      else{
  16.            $(active).value=$(active).value+'[/'+tag+']';
  17.            $('bb_b').value = 'B';
  18.            otwarte = 0;
  19.      }
  20.  
  21. }
  22.  
  23. <form action="" method="post" name="editform">
  24. <input type="hidden" id="field">
  25. <textarea id="post1" onclick="document.editform.field.value = this.id">tresc post1</textarea><br><br>
  26. <textarea id="post2" onclick="document.editform.field.value = this.id">tresc post2</textarea><br><br>
  27. <textarea id="post3" onclick="document.editform.field.value = this.id">tresc post3</textarea><br><br>
  28.  
  29. <input type="button" value="B" name="b" id="bb_b" onclick="dodaj_tag('B');" >
  30. <input type="submit">
  31. </form>


Ten post edytował TomASS 21.04.2006, 22:41:09


--------------------
Go to the top of the page
+Quote Post
Apo
post
Post #12





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


Cytat(LBO @ 2006-04-21 09:46:54)
Kod
id="identyfikator" onclick="passID(this.id)"

Skoro można pobrać nazwe id z aktualnego elementu i przekazać do funkcji (this.id jak jest napisane) to można chyba też przekazać podobnie nazwe formularza przez this ? ale moge sie mylic
Go to the top of the page
+Quote Post
TomASS
post
Post #13





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Nazwe formularza w którym jest element? Czyli w zasadzie nazwę rodzica tego elementu?

Np. name pola text:
  1. <input type="text" name="nazwa" id="ident" onclick="alert(this.name);">

Coś się tak uparł na 'name'? tongue.gif
Sam parametr Name nie zawsze jednoznacznie określa Ci element na stronie.


--------------------
Go to the top of the page
+Quote Post
Apo
post
Post #14





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


Ooooooo TomASS o to mi chodziło tongue.gif Nie chciałem pisac funkcji tylko łatwo to zrobić dlatego sie pytałem smile.gif
Go to the top of the page
+Quote Post

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 Aktualny czas: 19.08.2025 - 06:34