Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX][JavaScript][PHP] Ukrywanie/wyświetlanie danych
-matejbos-
post
Post #1





Goście







Witam. Nigdy nie piszę na forach, zawsze znajduję odpowiedź we własnym zakresie, tym razem nie dałem rady. Problem tego typu. Wypisanie za pomocą JSON w formularzu, który jest ukryty za pomocą chained liczb 8 i 9. Problem jest z klasą i chained, osobno wszystko działa. Wypisanie Janek i Ala działa, liczby już nie. Ewentualne później ich zablokowanie np: .style.disabled="none" Z góry dzięki za odp.

  1. <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
  2. <select id="mark" name="osoba">
  3. <option value="">--</option>
  4. <option id ="janek" value="janek" ></option>
  5. <option id ="ala" value="ala" ></option>
  6. </select>
  7. <select id="series" name="godzina">
  8. <option value="">--</option>
  9. <option id="8" value="8" class="janek"></option>
  10. <option id="10" value="10" class="janek"></option>
  11. <option id="9" value="9" class="ala"> </option>
  12. </select>
  13. </form>

[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2.  
  3. $("#series").chained("#mark");
  4.  
  5. var JSONObject = {
  6. "janek":" Janek",
  7. "ala":" Ala"
  8.  
  9. };
  10. document.getElementById("janek").innerHTML=JSONObject.janek
  11. document.getElementById("ala").innerHTML=JSONObject.ala
  12.  
  13. var elements = document.getElementsByClass('janek');
  14. var element0 = document.getElementsByClass('janek')[0];
  15. var element1 = document.getElementsByClass('janek')[1];
  16.  
  17. element1.innerHTML=JSONObject.janek;
  18. </script>
[JAVASCRIPT] pobierz, plaintext
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
csharp
post
Post #2





Grupa: Zarejestrowani
Postów: 127
Pomógł: 3
Dołączył: 22.04.2012
Skąd: Warszawa

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


jak chcesz napiszę Ci to w jQuery... będzie kilka linijek - chyba, że koniecznie JSON.
Go to the top of the page
+Quote Post
matejbos
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 1
Dołączył: 29.06.2012

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


obojętnie byle działało (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
kamil4u
post
Post #4





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Nie rozumiem o co chodzi (IMG:style_emoticons/default/smile.gif) Opisz dokładniej.
I opisz w skrócie co robi: "chained", bo to jakiś dodatek pewnie

1.
Cytat
var element0 = document.getElementsByClass('janek')[0];

Jeśli już to getElementsByClassName

2. ID nie może być liczbą, ani się od niej zaczynać

Cytat
jak chcesz napiszę Ci to w jQuery... będzie kilka linijek - chyba, że koniecznie JSON.

JSON to nie język programowania, ani żadna biblioteka JS ( jak jQuery), więc nie wiem co ma piernik do wiatraka

Ten post edytował kamil4u 30.06.2012, 13:53:35
Go to the top of the page
+Quote Post
-Gość-
post
Post #5





Goście







Tak racja, w poszukiwaniu info właśnie doczytałem ze bez document. Nie zmieniłem po prostu. Chained polega na "odkrywaniu" kolejnego pola po wyborze poprzedniego. Np: Wybierasz Audi to wtedy odblokowuje się formularz z modelami, a problem jest właśnie z chained. Bo sam JSON działa jak należy przy pierwszym polu (marka np: Audi), bo tam są tylko id,
  1. <option id ="janek" value="janek" ></option>
  2. <option id ="ala" value="ala" ></option>


a już w następnym (model, np A4) jest już klasa, po której chained wie co ma odblokować identyfikując po poprzednim id tutaj Audi.
  1. <option id="8" value="8" class="janek"></option>
  2. <option id="10" value="10" class="janek"></option>
  3. <option id="9" value="9" class="ala"> </option>


I problem żeby JSON wypisał, tak jak w przypadku marki, również modele. Nie wiem czy w miarę jasno to opisałem (IMG:style_emoticons/default/smile.gif) .

[JAVASCRIPT] pobierz, plaintext
  1. var element1 = getElementsByClass('janek')[0];
  2. element1.innerHTML=JSONObject.janek;
[JAVASCRIPT] pobierz, plaintext

Niby coś takiego powinno działać, ale jednak jest problem ...
Go to the top of the page
+Quote Post
kamil4u
post
Post #6





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Cytat
Tak racja, w poszukiwaniu info właśnie doczytałem ze bez document. Nie zmieniłem po prostu.

Heh. Dobre kłamstwo (IMG:style_emoticons/default/smile.gif)

Ma być: document.getElementsByClassName('janek')[0];

Chodziło o dodanie Name, a nie usunięcie document (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
-Gość-
post
Post #7





Goście







http://robertnyman.com/2005/11/07/the-ulti...ntsbyclassname/ apropo "document" tutaj się zasugerowałem (ale to już funkcje), była jeszcze jedna strona ale niestety nie mogę znaleźć, jeżeli trafię na nią znowu, to na pewno wrzucę linka (IMG:style_emoticons/default/smile.gif) Ale tak czy tak document.getElementsByClassName('janek')[0]; nie działa (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
kamil4u
post
Post #8





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Dobra dobra - masz rację. Z tym, że tamte funkcje nie są natywne( tylko napisane jako zwykła funkcja) , dlatego nie ma document. Mniejsza, ważne, że już masz dobrze (IMG:style_emoticons/default/smile.gif)
I polecam na przyszłość nie tyle szukać w Google co w dokumentacji MDC - wtedy na pewno unikniesz takich drobnostek. No i oczywiście sprawdzaj
Cytat
konsolę błędów


Wszystko działa: http://jsfiddle.net/BNCyq/
Ew. napisz jakiej przeglądarki używasz i upewnij się, że na pewno DOM masz załadowany (IMG:style_emoticons/default/smile.gif)

I jeszcze o tym getElementsByClassName. Ten link co dodałeś umożliwia korzystanie z tej funkcji w starszych przeglądarkach( głownie chodzi o IE ). Wtedy nie używamy document. Jak używasz jQuery to możesz użyć selektora klasy (.janek) i metody text albo html. Ew. użyć get, czyli zwrócić element HTML.
Go to the top of the page
+Quote Post
--matejbos--
post
Post #9





Goście







Hehe nie chodzi,tak jak wcześniej pierwszy wybór działał, następny już nie. Tutaj myślę że najbardziej czytelny problem będzie (IMG:style_emoticons/default/smile.gif)

http://jsfiddle.net/GcyY3/
Go to the top of the page
+Quote Post
kamil4u
post
Post #10





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


http://jsfiddle.net/GcyY3/1/ ? Jeśli nie to opisz bardzo dokładnie co chcesz osiągnąć.
Go to the top of the page
+Quote Post
-Gość-
post
Post #11





Goście







Dokładnie o to chodziło, dzięki wielkie (IMG:style_emoticons/default/smile.gif) , aż mi się nie chce wierzyć, że problem leżał w tym aby "chained" był pod tym wszystkim ...
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: 23.08.2025 - 03:03