Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Parametry
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
kamila
mam pytanko jak zrobić aby przy wczytywaniu strony wykonuje sie javascript wyciągajacy dane z urla.
zwroci on pewien ciag znakowy(np. kawa)
jak zrobic aby z xml wybrał tylko pola których id="kawa"
przykład:
kawałek xml-a:
<zeszyt>
<strona id="czolowa">tekst strony czolowej</strona>
<strona id="herbata"> info o herbacie </strona>
<strona id="kawa">info o kawie </strona>

w zależności od wartości z url-a powinna wyświetlic tylko odpowiednia część
nr. jeżeli w url było kawa
to efekt jest:
info o kawie

z góry dzięki za wszelka pomoc
Seth
Najlepiej uzyc do tego XPatch'a stosujac taki wzorzec:
  1. /zeszyt/strona[@id='kawa']
kamila
tak ale je nie znam tych wartości(np. kawa)
one mogą być niesamowicie różne i chodzi żeby wpisać do parametru wartość które mogą być za każdym otwarciem strony rózne
Seth
OK.
Powiedz mi jeszcze jedno bo nie za bardzo zrozumialem: chcesz pobrac przez JavaScript (po stronie klienta) XMLa z Twojego serwera, a potem z niego wydobyc ten ciag znakow z okreslonego id - przekazanego w URLu, tak ?
kamila
tak dokładniej to wygląda tak
mam plik z danymi o pismach w xmlu
w pliku A.xml wyswietlam wszystkie pisma i formularzem przesyłam informację o tym które pismo zostało wybrane do pliku B.xml
postaci B.xml?idpisma=numer...
w pliku B.xml chcę odczytać ten numer i na podstawie niego wyświetlić szczegóły pisma?(tylko jednego o konkretnym id)
tak jak wcześniej pisałam id znajduje się w tagu <pismo id="1234">
chyba w miarę jasno
Seth
Mam jeszcze jedno pytanie: pod jaka przegladarka ma to dzialac ?

Przenioslem do odpowiedniejszego dzialu ( XML >> JS )
kamila
powinno działać pod IE
najlepiej aby było uniwersalnei rozwiązane po stronieklienta
Seth
Wykombinowalem cos takiego (test.html) - IE only:
  1. <body>
  2. <script language="JavaScript">
  3. if ( window.ActiveXObject )
  4. {
  5. var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  6. xmlDoc.async = false;
  7.  
  8. xmlDoc.load("zeszyty.xml");
  9.  
  10.  
  11. url = window.location.href;
  12. if ( ( pos1 = url.indexOf("id=") ) != -1 )
  13. {
  14. paraValue = url.substring( pos1 + 3 );
  15.  
  16. var nodes = xmlDoc.selectNodes( "/zeszyt/strona[@id='" + paraValue + "']" );
  17.  
  18. if ( nodes )
  19. {
  20. document.write( nodes[0].text + "" );
  21. }
  22. }
  23. }
  24. else
  25. {
  26. alert("IE only :(");
  27. }
  28. </script>
  29. </body>
  30. </html>


plik zeszyty.xml:
  1. <?xml version="1.0"?>
  2. <zeszyt>
  3. <strona id="czolowa">tekst strony czolowej</strona>
  4. <strona id="herbata"> info o herbacie </strona>
  5. <strona id="kawa">info o kawie </strona>
  6. </zeszyt>


Teraz po przekazaniu np test.html?id=kawa pojawi sie tekst z XMLa.

Samo rozpoznawanie parametru i jego wartosci jest mocno niedorobione winksmiley.jpg ale sadze, ze moze ktos inny sie znajdzie i sprobuje to dopracowac.
kamila
niestety przy:
document.write( nodes[0].text + "" );
wyrzuca mi błąd JS "Wymagany jest obiekt"
Seth
A umiescilas plik zeszyty.xml w tym samym miejscu co plik test.html ?
kamila
oczywiście
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.