Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][HTML][PHP]Problem z przypisaniem id
Forum PHP.pl > Forum > Przedszkole
gieb
Witam,
Piszę w związku z problemem, z którym nie mogę za nic sobie poradzić, ani znaleźć odpowiedzi.
Otóż mając taki uproszczony kod strony:
  1. <html xmlns="http://www.w3org/1999/xhtml">
  2. <body>
  3. <script type="text/javascript" src="script.js"></script>
  4. <div id="menu">
  5. <a id="selected" href="index.php?page=1" onclick="changeSelection(this)">link1</a>
  6. <a id="" href="index.php?page=2" onclick="changeSelection(this)">link2</a>
  7. <a id="" href="index.php?page=3" onclick="changeSelection(this)">link3</a>
  8. </div>
  9. <div>
  10. <?php
  11. $page=$_GET['page'];
  12. if (file_exists('./'.$page.'.php')) {
  13. include('./'.$page.'.php');
  14. } else {
  15. include('./1.php');
  16. }
  17. ?>
  18. </div>
  19. </body>
  20. </html>

Kod
function changeSelection(s){
    var menu=document.getElementById('menu');
    var links=menu.getElementsByTagName('a');
    var i=0;
    while(i<links.length) {
        links[i].id='';
        i++;
    }
    s.id='selected';
}

strona w momencie kliknięcia w link wykonuje funkcję zmieniającą id, oraz zmienia zawartość strony. Niestety właśnie, przy wczytaniu podstrony, id linków ustawiają się z powrotem na początkową konfigurację. Stąd też moje pytanie: jak zrobić, żeby atrybut id linków się nie resetował.
Pozdrawiam.

[edit]
Już rozwiązałem problem usuwając onclick, oraz wpisując wewnątrz atrybutu id taki kod:
  1. <?php
  2. $page=$_GET['page'];
  3. if($page=='1') {
  4. print('selected');
  5. }
  6. ?>
Kostek.88
Moim zdaniem niepotrzebnie kombinujesz. Albo wszystko robisz w JS i AJAX, albo w PHP... nie wyrazilem sie precyzyjnie, wiec juz wyjasniam. Twoje rozwiazanie jest dobre, jak wczytujesz strony na dole AJAX-em.

Ja na Twoim miejscu zdjalbym JS i dalbym w linkach cos takiego:

  1. <a <?if($_GET["page"]==1) echo ' id="selected" ';?> href="index.php?page=1">link1</a>


Wtedy po przeladowaniu strony, a w zasadzie podczas, sprawdzasz czy page=1 (w nastepnych linkach odpowiednio 2 i 3) i jezeli jest taka strona zaladowana, nadawany jest po prostu ID 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.