Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX][JavaScript][PHP] Ukrywanie/wyświetlanie danych
-matejbos-
post 29.06.2012, 21:58:15
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
csharp
post 30.06.2012, 09:58:31
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.


--------------------
Prywatny blog -> cupial.com.pl
Go to the top of the page
+Quote Post
matejbos
post 30.06.2012, 13:43:14
Post #3





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

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


obojętnie byle działało smile.gif
Go to the top of the page
+Quote Post
kamil4u
post 30.06.2012, 13:52:38
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 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 30.06.2012, 14:41:38
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 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 30.06.2012, 14:53:50
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 smile.gif

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

Chodziło o dodanie Name, a nie usunięcie document smile.gif


--------------------
Go to the top of the page
+Quote Post
-Gość-
post 30.06.2012, 16:09:40
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 smile.gif Ale tak czy tak document.getElementsByClassName('janek')[0]; nie działa smile.gif
Go to the top of the page
+Quote Post
kamil4u
post 30.06.2012, 16:26:51
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 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 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 1.07.2012, 00:22:11
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 smile.gif

http://jsfiddle.net/GcyY3/
Go to the top of the page
+Quote Post
kamil4u
post 1.07.2012, 00:49:10
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 1.07.2012, 13:43:02
Post #11





Goście







Dokładnie o to chodziło, dzięki wielkie 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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.07.2025 - 04:50