Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] problem z divem
Forum PHP.pl > Forum > Przedszkole
slawek3422
Witam.
To skrypt, którego używam:

  1. <script type="text/javascript">
  2. function strona(plik) {
  3.  
  4. var xml = null;
  5. var wynik = document.getElementById("wynik");
  6. wynik.innerHTML = "Trwa ładowanie strony";
  7.  
  8. if (window.XMLHttpRequest) xml = new XMLHttpRequest();
  9. else if (window.ActiveXObject) xml = new ActiveXObject("Microsoft.XMLHTTP");
  10.  
  11. if (xml) {
  12. xml.onreadystatechange = function() {
  13. if (xml.readyState==4) {
  14. wynik.innerHTML = xml.responseText;
  15. }
  16. }
  17. xml.open("GET", plik+".htm", true);
  18. xml.send(null);
  19. }
  20. return false;
  21. }


wywołuję go w ten sposób:

  1. <a href="s1.htm" onclick="return strona('s1')">Strona główna</a>
  2. <a href="s2.htm" onclick="return strona('s2')">Strona 2</a>
  3. <a href="s3.htm" onclick="return strona('s3')">Strona 3</a>


a wynik wyświetla się tutaj bez przeładowania strony:
  1. <div id="wynik"></div>


No i działa pięknie pod FF, IE i Safari ale jak zrobić, żeby takie wywołanie zadziałało pod IE i Safari ?:

  1. <select id="wielkosc" name="wielkosc" onchange="select(this.value)">
  2. <option value="">wybierz</option>
  3.  
  4. <option value=52 onclick="return strona('s1')">19"</option>
  5. <option value=100 onclick="return strona('s2')">21,1"</option>
  6. <option value=90 onclick="return strona('s3')">21,3"</option>
  7. <option value=113 onclick="return strona('s4')">22"</option>
  8. <option value=106 onclick="return strona('s5')">22,2"</option>
  9. <option value=115 onclick="return strona('s6')">24,1"</option>
  10. <option value=122 onclick="return strona('s7')">27"</option>
  11. <option value=125 onclick="return strona('s8')">30"</option>
  12.  
  13. </select>


W FF działa bez problemu a w IE wg mnie nie działa dlatego, że nie ma hrefa ...
Jakieś pomysły ?
bazyliszek83
A nie lepiej do zdarzenia onChange przy <select> dopisać jakaś funkcję która na podstawie wybranego pola wywoła funkcje strona(plik). Wiem że pod IE funkcja onChange działa prawidłowo na <select>, a na <option> różnie to bywa.
safe
@bazyliszek83 mam identyczny problem z tym ze nie jestem zabardzo obyty w JS

Jestes w stanie zaproponowac jakas implementacje ?
bazyliszek83
Piszę tak z "ręki" więc może nie wszystko działać ale idee przedstawie:
Taką prostą funkcję bym polecał. Tu oczywiście jest ona prosta bo w przedstawionym przykladzie strony są numerowane od 1 wzwyż.
  1. function przekieruj(element) {
  2. if(element.selectedIndex > 0)
  3. strona( "s" + element.selectedIndex );
  4. }


Samego selecta bym widział tak.
  1. <select id="wielkosc" name="wielkosc" onchange="przekieruj(this);select(this.value);">
  2. <option value="">wybierz</option>
  3.  
  4. <option value=52>19"</option>
  5. <option value=100>21,1"</option>
  6. <option value=90>21,3"</option>
  7. <option value=113>22"</option>
  8. <option value=106>22,2"</option>
  9. <option value=115>24,1"</option>
  10. <option value=122>27"</option>
  11. <option value=125>30"</option>
  12.  


Nie wiem co to jest za funkcja select(this.value), więc ją zostawiłem w spokoju:)

Powinno śmigać również pod IE. Jakby cos to piszcie...smile.gif
slawek3422
pięknie śmiga smile.gif dzięki za pomoc
safe
dokładnie smile.gif działa, muszę to teraz tylko przerobić na więcej selectów ale to już sobie chyba poradzę smile.gif
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.