Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [javascript] formularze
Mayger
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 28.01.2006

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


Mam takie pytanie. Jak zrobić w javie że np. mam <select.. i jeżeli jest value = 1 to wyświetlają się inne inputy a jak value = 2 to inne. Chce żeby do się robiło dynamicznie tylko nie wiem dokładnie jak to w javie zrobić. Jak ktoś by mógł pomóc to prosze jeszcze o jakiś przykładzik (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował Mayger 16.12.2006, 16:09:24
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #2





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Cytat
Chce żeby do się robiło dynamicznie tylko nie wiem dokładnie jak to w javie zrobić
JAVA to nie jest JavaScript!.

Aby to zrobić, w polu typu select wywołujesz zdarzenie onchange="fun()", i definiujesz funkcję języka JavaScript. Coś w tym stylu (wyświetlają się różne elementy <div />):
  1. <style type="text/css">
  2. div { width: 100px; height: 100px; margin: 0 0 2em 0; }
  3. #k1 {border: 1px solid #000; display: block; background: #000; color: #FFF;}
  4. #k2 {border: 1px solid #000; display: none; background: #FFF; color: #000;}
  5. <script type="text/javascript">
  6. function wybierz() {
  7. oSelect = document.getElementById("wybor");
  8. if(oSelect.value == "pole1") {
  9. document.getElementById("k1").style.display = "block";
  10. document.getElementById("k2").style.display = "none";
  11. } else {
  12. document.getElementById("k1").style.display = "none";
  13. document.getElementById("k2").style.display = "block";
  14. }
  15. }
  16. </head>
  17. <div id="k1">RAZ</div>
  18. <div id="k2">DWA</div>
  19. <select id="wybor" onchange="wybierz()">
  20. <option value="pole1">Pole 1</option>
  21. <option value="pole2">Pole 2</option>
  22. </body>
  23. </html>


EDIT:
Poprzednio była zdefiniowana funkcja JS o nazwie doIt(), natomiast zdarzenie onchange odwoływało sie do funkcji wybierz() - co powodowało, że przykład nie działał.

Ten post edytował JaRoPHP 20.12.2006, 15:59:35
Go to the top of the page
+Quote Post
Mayger
post
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 28.01.2006

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


Cytat(JaRoPHP @ 16.12.2006, 23:17:10 ) *
  1. function doIt() {
  2. oSelect = document.getElementById("wybor");
  3. if(oSelect.value == "pole1") {
  4. document.getElementById("k1").style.display = "block";
  5. document.getElementById("k2").style.display = "none";
  6. } else {
  7. document.getElementById("k1").style.display = "none";
  8. document.getElementById("k2").style.display = "block";
  9. }
  10. }

A nie można po prostu w miejsce tego:
  1. document.getElementById("k1").style.display = "block";
  2. document.getElementById("k2").style.display = "none";

Wstawić tej treści i wywołać jakoś tą funkcje, bez bawienia się w divy?
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #4





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Cytat(Mayger @ 17.12.2006, 15:40:56 ) *
A nie można po prostu w miejsce tego...
Wstawić tej treści i ...
Jakiej treści?

Zaprezentowałem przykład, ukazujący, że jest możliwość wyświetlania różnych elementów, w zależności od aktualnej wartości pola <select />. Tak zrozumiałem twój problem... Wydaje mi się, że najprostszym rozwiązaniem (ale oczywiście nie jedynym) jest umieszczenie odpowiednich pól <input /> w elementach <div /> (a potem odpowiednio je wyświetlać).
Jedną z alternatyw jest wykorzystanie metod createElement(), createTextNode(), appendChild() i removeChild() (lub odpowiednio zastosowane replaceChild())...

Ten post edytował JaRoPHP 17.12.2006, 23:46:05
Go to the top of the page
+Quote Post
Mayger
post
Post #5





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 28.01.2006

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


ten twój sposób nie za bardzo działa :] http://www.lool.pl/test(2).php
---edit---
na moje oko bład jest w zmienianiu display :]

Ten post edytował Mayger 20.12.2006, 15:39:31
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #6





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Sposób działa, ale wkradł sie mały błąd (już jest poprawiony).
Nazwa funkcji JavaScript ma być wybierz(), a nie doIt().
Go to the top of the page
+Quote Post
Mayger
post
Post #7





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 28.01.2006

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


No już działa, zastanawialo mnie co ma znaczysz to doit() ale orłem w javascript nie jestem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #8





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Cytat
... w javacripcie to w ogóle nie działa ... a myślę że w Ajaxie dało by się to jakoś łatwo rozwiązać
Skąd taki wniosek? Czym jest AJAX (Asynchronous JavaScript and XML), jak nie wykorzystaniem m.in. języka JavaScript?

Jaką treść chcesz zmienić? Podaj jakiś przykładowy kod HTML/XHTML, i napisz co się ma zmieniać (i kiedy ta zmiana ma zajść).

Ten post edytował JaRoPHP 21.12.2006, 18:57:04
Go to the top of the page
+Quote Post
Mayger
post
Post #9





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 28.01.2006

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


widocznie to twoje rozwiązanie z javascriptem nie jest do końca poprawne i stąd ten mój wniosek (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #10





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Rozwiązanie jakie przedstawiłem jest poprawne... Ale oczywiście dla mojego zrozumienia problemu.

Jak chcesz uzyskać rozwiązanie "poprawne" to napisz choć kawałek kodu, i wytłumacz jak ma on działać. Wtedy na pewno uzyskasz rezultat, który będzie bardziej pasował do Twojego problemu.
Jak ograniczasz się tylko to definicji problemu, to zazwyczaj uzyskujesz przykładowe rozwiązanie (lepsze lub gorsze).

[EDIT]
Widzę, że link który zamieściłeś: http://www.lool.pl/test(2).php, uległ zmianie. Po zaglądnięciu do źródła, zrozumiałem, gdzie popełniasz błąd @Mayger: atrybut id to identyfikator elementu, co oznacza, że tylko jeden element na stronie, może mieć id o tej samej nazwie.

Ten post edytował JaRoPHP 22.12.2006, 10:43:39
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: 30.09.2025 - 21:42