Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]aktywny link spisu treści
xoro
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.07.2014

Ostrzeżenie: (0%)
-----


Witam to mój pierwszy post na forum więc proszę o wyrozumiałośc.

Poskładałem sobie pewien skrypt, który można nazwać domową bazą filmów.

Polega to na tym,że wklepuję sobie przez formularz dane dotyczące filmu i są one zapisywane do bazy danych.

Aplikacja jest oparta na ramkach <frameset> (dlaczego? tak po prostu chciałem).

I wszystko działa dane są dodawane do bazy, a linki do poszczególnych filmów są wyświetlane w lewej ramce (spis treści).

Po kliknięciu w link (który jest tytułem) w prawej ramce wyświetla sie opis danego filmu.

W czym polega mój mały problem?

Chciałbym aby po kliknieciu w link do filmu (lewa ramka) i wyświetleniu jego opisu (prawa ramka), ten własnie link (w lewej ramce) był podświetlony (zaznaczony że wyświetla się konkretny opis konkretnego linku).

Przyznam, że znalazłem na forum ten temat http://forum.php.pl/index.php?showtopic=121148&hl= ale coś mi nie działa, szczerze zgłupiałem i nie wiem w czym problem.

Skrypt mam postawiony na localu na kompie, jednak wrzuciłem na hosting aby mozna było zerknąc o co mi chodzi.

adres: http://xoro.linuxpl.info
user: test
hasło: test

rejestracja jest wyłączona, ale po kliknieciu buttona Logowanie można spokojnie się zalogować.


Wyświetlanie spisu treści leci po petli:

  1. //wyswietlanie listy filmow
  2. if(mysql_num_rows($q)<1){
  3. echo 'BRAK FILMÓW W BAZIE DANYCH';
  4. }
  5. $numeracja = 0;
  6. while($rekord = mysql_fetch_array($q)){
  7. echo '<p>'.++$numeracja.'.  '.'<a target="strona" href="dvd_pokaz_film.php?id='.urlencode($rekord['id']).'">'.stripslashes($rekord['tytul_pl']).' ..... ('.$rekord['rok_prod'].')</a></p>';}


Ten post edytował xoro 16.07.2014, 21:11:34
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Problem nie ma zwiazku ani z php ani z mysql.
To co chcesz zrobic to js oraz css.

Daj dla linkow zdarzenie onclick a w nim kod js, ktory dla tego linku doda klase ACTIVE, a dla wszyskich innych linkow zdejmie klase ACTIVE. Zas w css ustaw kolor dla klasy ACTIVE jaki chcesz miec. Ot i wsio.

ps: dawanie do tego ramek to raczej przestarzaly pomysl. Lepsze bylby tutaj ajax lub normalne przeladowanie strony, a calosc bez ramek.

ps2: poczytaj o SQLInjection bo teraz twoje zapytania są na nie podatne
http://xoro.linuxpl.info/dvd_pokaz_film.ph...1200%20or%201=1
Go to the top of the page
+Quote Post
xoro
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.07.2014

Ostrzeżenie: (0%)
-----


Czułem, że to może być związane z JS (niestety jest jeszcze moja pieta achillesowa - mam już sporo lat na karku i wymysliłem sobie hobby pt. kodowanie).

Może jakaś podpowiedź? (IMG:style_emoticons/default/smile.gif)

Co do zabezpieczeń, skrypt nie będzie publikowany w sieci (tylko uzytek własny na kompie XAMPP).
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Doładuj bibllioteke js jquery a nastepnie:
  1. echo '<p>'.++$numeracja.'. '.'<a onclick="jQuery(this).addClass(\'ACTIVE\'); return true;" target="strona" href="dvd_pokaz_film.php?id='.urlencode($rekord['id']).'">'.stripslashes($rekord['tytul_pl']).' ..... ('.$rekord['rok_prod'].')</a></p>';

Oraz w css zdefiniuj klase ACTIVE i kolory jakie dla niej chcesz miec.

Gdy to ci zadziala, pozostanie dopisanie ci kasowanie ACTIVE z pozostalych linkow (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
xoro
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.07.2014

Ostrzeżenie: (0%)
-----


Dzięki za wskazanie kierunku.

Będe próbował.

W razie problemów pozwolę sobie Poprosić o pomoc.

------------------------------------

Rozwiązałem mój problem dzięki wskazówkom nospor.
Poczytałem trochę w sieci i rozwiązanie jest faktycznie proste.

Zrezygnowałem z <a onclick=.....>

Dodałem bibliotekę JQuery oczywiście.

Dodałem klasę dla <a> czyli:

  1. echo '<p><a class="linki" target="strona" href="dvd_pokaz_film.php?id='.urlencode($rekord['id']).'">'.++$numeracja.'. '.''.stripslashes($rekord['tytul_pl']).' ..... ('.$rekord['rok_prod'].')</a></p>';


a pod spodem mały skrypt js:

  1. <script type="text/javascript">
  2. $('a.linki').click(function(){
  3. $('a.linki').removeClass("active");
  4. $(this).addClass("active");
  5. });
  6. </script>


i smiga jak chciałem.

Bardzo Dziękuję nospor za danie wędki, a nie ryby (IMG:style_emoticons/default/smile.gif)

Pozdrawiam.

Ten post edytował xoro 17.07.2014, 08:40:07
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Aż miło patrzeć na takich ludzi który są w stanie sami wykombinować rozwiązanie a nie tylko daj daj ...
Gratuluję i życzę owocnego kodowania
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Zgadza się. W pelni podpisuje się pod słowami Pytona (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 07:02