Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyświetlanie banneru w zależności od kategorii
Forum PHP.pl > Forum > Przedszkole
s60v5
Witam.

Mam mały problem. Na stronie sklepu internetowego są cztery kategorie. Linki do tych kategorii wyglądają tak:

Kod
http://sklep.pl/index.php?cPath=1
http://sklep.pl/index.php?cPath=2
http://sklep.pl/index.php?cPath=3
http://sklep.pl/index.php?cPath=4


Na stronie głównej wyświetlany jest banner, zakodowałem go za pomocą diva.
Teraz pytanie: Jak zrobić aby po kliknięci na inną kategorię zmieniał się ten banner? Każda kategoria ma mieć przypisany swój indywidualny banner.
Myślałem nad wykorzystaniem instrukcji warunkowej, to jedyne co mi przychodzi do głowy. Aczkolwiek, jestem zielony w PHP.

Proszę o szybką pomoc! Pozdrawiam headsetsmiley.png
Kostek.88
Albo banery ponazywasz numerami i dla cPath=1 to bedzie 1.jpg itd... i na koncu bedzie obrazek o nazwie pobranej ze zmiennej. No i tam instrukcja if file_exists...
s60v5
mógłbyś coś takiego w kilku linijkach napisać, chociaż w pseudokodzie?
jakoś nie było czasu na naukę PHP, a cholernie mi to na dzisiaj potrzebne
Kostek.88
  1.  
  2.  


i php idzie tak:

  1.  
  2. if(file_exists('/sciezka_do_katalogu_z_grafika/' . $_GET['cPath'] . '.jpg')) {
  3. echo '<img src="sciezka_do_katalogu_z_grafika/" . $_GET['cPath'] . '.jpg" />';
  4. }
  5.  


W sumie w ten sposob mozesz w linkach nawet nazwy podstawiac i bedzie to automatycznie ladowane do obrazka... albo mozesz jeszcze przypisac to do tablicy, na wypadek jakby plik mial inne rozszerzenie, zatem


  1.  
  2. $banner = array(
  3. 1 => 'nazwa_dla_1.jpg',
  4. 2 => 'nazwa_dla_2.gif',
  5. 3 => 'nazwa_dla_3.png',
  6. 4 => 'nazwa_dla_4.jpg',
  7. );
  8.  
  9. if(file_exists('/sciezka_do_katalogu_z_grafika/' . $banner["' . $_GET['cPath'] . '"])) {
  10. echo '<img src="sciezka_do_katalogu_z_grafika/" . $banner["' . $_GET['cPath'] . '"] . ' " />';
  11. }
  12.  


Cos tego typu. Moga byc bledy, bo pisane na szybko.
s60v5
zaraz to sobie wdrożę
a jeszcze jedno pytanko - jeżeli bym chciał również dać banner dla samego index.php to biorę coś tego typu? - if(index.php) { echo '<img src>'; } ?
natomiast te numerki

  1. $banner = array(
  2. 5 => 'nazwa_dla_1.jpg',
  3. 6 => 'nazwa_dla_2.gif',
  4. 7 => 'nazwa_dla_3.png',
  5. 8 => 'nazwa_dla_4.jpg',
  6. );


odpowiadają numerkom cPatch? np cPatch=8 więc 8 => 'obrazek1.jpg' ?
Kostek.88
  1. $banner = array(
  2. 'jakas_nazwa' => 'nazwa_dla_1.jpg',
  3. 2 => 'nazwa_dla_2.gif',
  4. 3 => 'nazwa_dla_3.png',
  5. 4 => 'nazwa_dla_4.jpg',
  6. );
  7.  
  8. if( isset($_GET['cPath']) ) { // musisz tu dac warunek, czy zmienna cPath w adresie w ogole istnieje... jesli chodzi o Twoj wymysl if index.php, to musialbys kombinowac z $_SERVER['REQUEST_URI'], ale to nie ma sensu
  9.  
  10. if(file_exists('/sciezka_do_katalogu_z_grafika/' . $banner["' . $_GET['cPath'] . '"])) {
  11. echo '<img src="sciezka_do_katalogu_z_grafika/" . $banner["' . $_GET['cPath'] . '"] . ' " />';
  12. }
  13.  
  14. } else {
  15.  
  16. if(file_exists('/sciezka_do_katalogu_z_grafika/main.jpg')) {
  17. echo '<img src="sciezka_do_katalogu_z_grafika/main.jpg" />';
  18. }
  19.  
  20.  
  21. }


Cos takiego mi tylko do glowy przychodzi teraz (wiadomo, pozna pora jest wink.gif )

A tamto tak, te numerki odpowiadaja wartosci zmiennej w adresie. W sumie mozesz tam teksty, podstawic. Jak w 1 linijce w tym przykladzie wyzej ^^^^^^^^^^^^^^^^^

PS. Dobra, lece spac, bo do pracy dzis wink.gif
s60v5
hej ponownie!

wyrzucało drobne błędy, zacząłem kombinować i trochę ten kod poprawiłem, nie wiem czy dobrze - teraz błędów nie ma, ale też nie działa jak powinno:
  1. $banner = array(
  2. 5 => '1.jpg',
  3. 6 => '2.jpg',
  4. 7 => '3.jpg',
  5. 8 => '4.jpg',
  6. );
  7.  
  8. if( isset($_GET['cPath']) )
  9. {
  10.  
  11. if(file_exists('http://sklep.pl/images/' . $_GET['cPath'] . '.jpg'))
  12. {
  13. echo '<img src="http://sklep.pl/images/" . $_GET["cPath"] . ".jpg">';
  14. }
  15.  
  16. } else {
  17.  
  18. if(file_exists('http://sklep.pl/images/1.jpg')) {
  19. echo '<img src="http://sklep.pl/images/1.jpg" />';
  20. }
  21.  
  22.  
  23. }

coś źle robię?

proszę o odpowiedź! pozdrawiam!
toaspzoo
  1. $banner = array(
  2. 5 => '1.jpg',
  3. 6 => '2.jpg',
  4. 7 => '3.jpg',
  5. 8 => '4.jpg',
  6. );
  7.  
  8. if( isset($_GET['cPath']) )
  9. {
  10.  
  11. if(file_exists('images/' . $_GET['cPath'] . '.jpg'))
  12. {
  13. echo '<img src="images/" . $_GET["cPath"] . ".jpg">';
  14. }
  15.  
  16. } else {
  17.  
  18. if(file_exists('images/1.jpg')) {
  19. echo '<img src="images/1.jpg" />';
  20. }
  21.  
  22.  
  23. }


W argumentach funkcji na serwerze podawaj pliki lokalne bez http://

A tak wgl, to po co Ci array, skoro z niego nie korzystasz?

plik styli

#logo15
{

width:975px;
margin-left:auto;
margin-right:auto;
height:155px;
background:url('images/logo25.png');
text-align:left;
}

nie zastanawia Cię to ?

Temat do zamknięcia, problem rozwiązany out of forum.
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.