Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z skryptem pokaż/schowaj
Forum PHP.pl > Forum > Po stronie przeglądarki
Vasquez21
Witam.

(Temat umieszczam w tym dziale gdyż wydaje mi się, że problem jest związany z skrypcikiem)

Mam b.prosty skrypcik menu, który po kliknięciu się rozwija, a po ponownym kliknięciu chowa.

Skrypcik:
  1. <?php
  2. function flip(rid)
  3. {
  4. current=(document.getElementById(rid).style.display == 'none') ? 'block' : 'none';
  5. document.getElementById(rid).style.display = current;
  6. }
  7.  
  8. function flop(rid)
  9. {
  10. current=(document.getElementById(rid).style.display == 'block') ? 'none' : 'block';
  11. document.getElementById(rid).style.display = current;
  12. }
  13. ?>


Wszystko działało pięknie i wogóle do momentu kiedy nie zobaczyłem jak działa na najnowszym IE :/

Mianowicie problem wyglada tak, że mam zdefiniowane dwa typy <li>
jeden nadrzędny i drugi podrzędny

mniej więcej na tej zasadzie:
  1. <li>Gora 1</li>
  2. <li class="li2">Poddział</li>
  3. <li class="li2">Poddział</li>
  4. <li class="li2">Poddział</li>
  5. <li>Gora 2</li>
  6. <li>Gora 3</li>
  7. <li class="li2">Poddział</li>
  8. <li class="li2">Poddział</li>


Działa to na tej zasadzie, że jeżeli kliknę w nadrzędny dział (Gora1,Gora2,Gora3) to rozwija mi sie jego zawartosc czyli Podzialy. Zdefiniowałem sobie graficzkę w css'ie o tak:

  1. <?php
  2. .menu-left-txt li
  3. {
  4.  background-image: url('../images/li_left.png');
  5.  background-repeat: no-repeat;
  6.  list-style: none;
  7.  margin: 0 0 3px 0;
  8.  padding: 0 0 5px 35px;
  9.  font-family: Trebuchet MS;
  10.  font-size: 11px;
  11.  font-weight: bold;
  12. }
  13.  
  14. .menu-left-txt .li2
  15. {
  16.  background-image: url('../images/li_left2.png');
  17.  background-repeat: no-repeat;
  18.  list-style: none;
  19.  margin: 0 0 3px 0;
  20.  padding: 0 0 5px 35px;
  21.  font-family: Trebuchet MS;
  22.  font-size: 11px;
  23. }
  24. ?>


i problem pojawia się bo jeżeli są jakieś poddziały to nie pojawia mi się ta graficzka do momentu kiedy nie kliknę na link żeby się rozwinął, wtedy pojawia mi się ta w li jak i po rozwinięciu bez problemu widzę graficzke dla li2.

Myslalem ze coś jest nie tak z li, ale jeżeli nie ma poddziałów to wszystko działa jak należy :/

Kodzik, odpowiadający za rozwijanie:

  1. <div class="menu-left-txt">
  2. <ul>
  3. <?php
  4.  
  5. if ($kategoria2['Wierzch']) //tutaj sprawdzam czy ta kategoria ma jakies poddzialy, jezeli nie ma to wyswietla
    my... tu dziala wszystko dobrze, pojawia sie tlo i jest ok.
  6. {
  7. ?>
  8. <li><a href="java script:ajaxpage('link.php?p=1&&id_k=<?php echo $kategoria2['ID_kategorii'];?>', 'contentarea');"><?php echo $kategoria2['Nazwa'];?></a></li>
  9. <?php
  10. }
  11. else
  12. { 
  13. /* jezeli natomiast sa podkategorie kolejne to wyswietlam najpierw ta kategorie j
    ako A i stosuje moj skrypcik, wszystko jest umieszczone jednak w tym samym <li> co wyzej mimo to graficzka sie nie pojawia... dopiero kiedy uzytkownik klikn
    ie zeby rozwinac menu wszystko sie pojawia */
  14.  
  15. echo' <li><A HREF="#" ONCLICK="flip('.$kategoria2['ID_kategorii'].'); return false;">'.$kategoria2['Nazwa'].'</a></li>
  16. <SPAN ID="'.$kategoria2['ID_kategorii'].'">
  17. <script LANGUAGE="JAVASCRIPT">flip('.$kategoria2['ID_kategorii'].');</SCRIPT>';
  18.  
  19. $zapytanie3 = mysql_query("SELECT Nazwa, Wierzch, ID_kategorii FROM Kategorie WHERE (Poziom ='3') and (Rodzic = '".$kategoria2['ID_kategorii']."') ORDER BY Nazwa ");
  20. while($kategoria3 = mysql_fetch_array($zapytanie3))
  21. {
  22. ?>
  23.  // no i tutaj wyswietlam to zagniezdzone <li class="li2"> ktore rowniez dobrze laduje graficzke...
  24. <li class="li2"><a href="java script:ajaxpage('link.php?p=1&&id_k=<?php echo $kategoria3['ID_kategorii'];?>', 'contentarea');"><?php echo $kategoria3['Nazwa'];?></a></li>
  25. <?php
  26. //echo' <li class="li2">&nbsp;<a href="?p=1&&id_k='.$kategoria3['ID_kategorii'].'">'.$kategoria3['Nazwa'].'</a></li>';
  27. }
  28.  
  29. echo' </SPAN>';
  30. }


Będę wdzięczny za jakieś wskazówki... byłbym w stanie to pojąć gdyby to była starsza wersja IE, ale w najnowszej ? :/
php programmer
Spróbuj objąć serię podrzędnych li w jakiegoś DIV'a,
do którego odwołujesz się oczywiście poprzez id
Vasquez21
heh namęczyłem się z tymi divami i niestety nie wymyśliłem... wpadłem natomiast na inne rozwiązanie:

same linki umieściłem w zamkniętych listach, tak samo jak później rozwijane menu... tak więc kodzik wygląda tak:

  1. <?php
  2. if ($kategoria2['Wierzch'])
  3. {
  4. ?> <ul>
  5. <li><a href="java script:ajaxpage('link.php?p=1&&id_k=<?php echo $kategoria2['ID_kategorii'];?>', 'contentarea');"><?php echo $kategoria2['Nazwa'];?></a></li>
  6. </ul>
  7. <?php
  8. }
  9.  
  10. else
  11. {
  12. ?>
  13. <ul>
  14. <li><A HREF="#" ONCLICK="flip(<?php echo $kategoria2['ID_kategorii'];?>); return false;"><?php echo $kategoria2['Nazwa'];?></a></li>
  15. </ul>
  16. <?php
  17. <SPAN ID="'.$kategoria2['ID_kategorii'].'">
  18. <script LANGUAGE="JAVASCRIPT">flip('.$kategoria2['ID_kategorii'].');</SCRIPT>
  19. <ul>';
  20. $zapytanie3 = mysql_query("SELECT Nazwa, Wierzch, ID_kategorii FROM Kategorie WHERE (Poziom ='3') and (Rodzic = '".$kategoria2['ID_kategorii']."') ORDER BY Nazwa ");
  21. while($kategoria3 = mysql_fetch_array($zapytanie3))
  22. {
  23. ?>
  24. <li class="li2"><a href="java script:ajaxpage('link.php?p=1&&id_k=<?php echo $kategoria3['ID_kategorii'];?>', 'contentarea');"><?php echo $kategoria3['Nazwa'];?></a></li>
  25. <?php
  26. }
  27.  
  28. echo' </ul>
  29. </SPAN>';
  30.  
  31. }
  32. ?>


No i narazie funkcjonuje jak należy winksmiley.jpg
Problemik był tylko w IE7
gekon
A możesz pokazać jak wygląda wygenerowany kod?
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.