Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][JavaScript][PHP] Ukrywanie/wyświetlanie danych
Forum PHP.pl > Forum > Przedszkole
matejbos
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
csharp
jak chcesz napiszę Ci to w jQuery... będzie kilka linijek - chyba, że koniecznie JSON.
matejbos
obojętnie byle działało smile.gif
kamil4u
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
Gość
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 ...
kamil4u
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ść
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
kamil4u
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.
-matejbos-
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/
kamil4u
http://jsfiddle.net/GcyY3/1/ ? Jeśli nie to opisz bardzo dokładnie co chcesz osiągnąć.
Gość
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 ...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.