Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> 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
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 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Ale dzięks (IMG:http://forum.php.pl/style_emoticons/default/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

(IMG:http://forum.php.pl/style_emoticons/default/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

(IMG:http://forum.php.pl/style_emoticons/default/blink.gif)

Przecierz to 'czysty' JS, tak samo jak:

hmm takiego czegoś jeszcze nie widziałem $(id) (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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
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? (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował ali 21.04.2006, 15:53:29
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'? (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Nie chciałem pisac funkcji tylko łatwo to zrobić dlatego sie pytałem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.08.2025 - 00:09