Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]Zmiana części htmla w zależności od zmiennej
Forum PHP.pl > Forum > Przedszkole
TheArt
Cze.

Mam kod:

Kod
<img src="images/12.jpg">


chcę, żeby w zależności od zmiennej

Kod
if($_GET['page'] == zmienna)


wczytywał się obraz odpowiedni dla danej podstrony. Oczywiscie mozna to zrobic przez include, tyle że to troche głupie żeby tworzyć dodatkowe kilkubajtowe pliczki. Czy da sie to jakoś zrobić, żeby działało w ten sposób:

Kod
if page=1 then <img src="images/1.jpg">
if page=2 then <img src="images/2.jpg">
if page=3 then <img src="images/3.jpg">


umiem

Kod
                                 <?php
                                  $str = $_GET['page'];
                                  if ($str == start){
                                  echo ("
                                  <TD>
                                  <img src=\"images/12.jpg\" width=25 height=15 border=\"0\"></a>                        </TD>
                                  ");}
                                  ?>
behu
  1. <?php
  2. switch($_GET['page']){
  3.    case '1':
  4.        echo '<img src="images/1.jpg">';
  5.    break;
  6.  
  7.    case '2':
  8.        echo <img src="images/2.jpg">;
  9.    break;
  10.  
  11.    // itd.
  12. }
  13. ?>


switch" title="Zobacz w manualu PHP" target="_manual
hondek
@collusio
w takim wypadku jak podales chyba zbedny jest switch, bo wystarczy poprostu :

  1. <img src="images/<?= $_GET['page']?>.jpg">
webdice
Proszę o dodanie tagu w tytule, w innym wypadku temat zostanie zamknięty.
MateuszS
Może tak?

  1. <?php
  2. if($_GET['page'] == '1')
  3. {
  4. echo '<img src="images/1.jpg">';
  5. }
  6.  
  7. if($_GET['page'] == '2')
  8. {
  9. echo '<img src="images/2.jpg">';
  10. }
  11.  
  12. if($_GET['page'] == '3')
  13. {
  14. echo '<img src="images/3.jpg">';
  15. }
  16. ?>
TheArt
Cytat(collusio @ 25.06.2009, 04:17:29 ) *
  1. <?php
  2. switch($_GET['page']){
  3.    case '1':
  4.        echo '';
  5.    break;
  6.  
  7.    case '2':
  8.        echo [img]%5C%22images/2.jpg%5C%22[/img];
  9.    break;
  10.  
  11.    // itd.
  12. }
  13. ?>


switch" title="Zobacz w manualu PHP" target="_manual


To byłby ciekawy sposób, gdyby nazwy wczytywanych obrazków były ułożone kolejno, tylko przykładowo wpisałem cyferki, choć oczywiście dałoby się je przemianować.


Cytat(hondek @ 25.06.2009, 08:40:13 ) *
@collusio
w takim wypadku jak podales chyba zbedny jest switch, bo wystarczy poprostu :

  1. <?php
  2. [img]%5C%22images/%3C?=[/img].jpg&#092;">
  3. ?>


To mi się podoba, choć jw nie nada się chyba jeśli są różne nazwy.


Cytat(MateuszScirka @ 25.06.2009, 10:08:14 ) *
Może tak?

  1. <?php
  2. if($_GET['page'] == '1')
  3. {
  4. echo '';
  5. }
  6.  
  7. if($_GET['page'] == '2')
  8. {
  9. echo '';
  10. }
  11.  
  12. if($_GET['page'] == '3')
  13. {
  14. echo '';
  15. }
  16. ?>


Cóż zapomniałem o apostrofach.
hondek
no spoko, wiec powiedz jaki efekt chcesz uzyskac bo ja w koncu nie wiem co chcesz zrobic.. :/
TheArt
Już uzyskałem tylko że trochę okrężnym sposobem ze slashami (zobacz pierwszy post), teraz pozmieniam kod, żeby mieć trochę krócej. Chociaż dla serwera to pewnie obojętne. Chodziło mi tylko o to jak złączyc php z htmlem, żeby ten drugi mógł wykonywać odpowiednie funkcje zależne od warunku if.
Wicepsik
Cytat(TheArt @ 25.06.2009, 13:21:23 ) *
Już uzyskałem tylko że trochę okrężnym sposobem ze slashami (zobacz pierwszy post), teraz pozmieniam kod, żeby mieć trochę krócej. Chociaż dla serwera to pewnie obojętne. Chodziło mi tylko o to jak złączyc php z htmlem, żeby ten drugi mógł wykonywać odpowiednie funkcje zależne od warunku if.

Pokaż jak zrobiłeś... jak to złączyć php z html? wstydnis.gif
TheArt
Zobacz pierwszy post. Chodziło mi o echo, które jakby wyłącza php, przekazując dane do htmla.
behu
no to przecież switch będzie dobry:

  1. <?php
  2. switch($zmienna){
  3.    case 'cos':
  4.        echo 'wyswietl <b>cos</b>'; // tekst
  5.        echo 'wyswietl'.$cos; // tekst + zmienna
  6.    break;
  7.  
  8.   case 'innecos':
  9.        echo 'wyswietl <b><i>innecos</i></b> blabla'; // tekst
  10.        echo 'wyswietl'.$innecos.'<b>'.$cos.'</b>'; // tekst + zmienna + zmienna
  11.   break;
  12. }
  13. ?>


lub nawet tak:
  1. <?php
  2.  switch($zmienna){
  3.      case 'cos':
  4.       ?>
  5.        <!-- jakis html bez echo -->
  6.        <b>cos</b>
  7.        <td>tabelka</td>
  8.        <!-- itp.. -->
  9.       <?php
  10.      break;
  11.  
  12.     case 'innecos':
  13.      ?>
  14.      <!-- jakis html bez echo -->
  15.      <b>blablablacos</b>
  16.      <td>tabelka</td>
  17.      <td>tabelka2</td>
  18.      <!-- itp.. -->
  19.     <?php
  20.     break;
  21.  }
  22. ?>
TheArt
Chyba nie umiem w ten sposób. Link ma sie zmieniać w zależności od podstrony, czyli $_GET['page']. W sumie to tylko element linku (sciezki do obrazka).
behu
w takim razie:

  1. <?php
  2. switch($_GET['page']){
  3.    case 'page1':
  4.        ?>
  5.        tutaj wstawiasz link w czystym html'u odpowiadający page1
  6.        <?php
  7.    break;
  8.  
  9.    case 'page2':
  10.        ?>
  11.        tutaj wstawiasz link dla page2
  12.        <?php
  13.    break;
  14.  
  15.    case 'page3':
  16.        ?>
  17.        tutaj link dla page3
  18.        <?php
  19.    break;
  20. }
  21. ?>


'page1', 'page2', 'page3' zmieniasz dowolnie według swojej zmiennej $_GET['page'] i tam gdzie zaznaczyłem komentarzem wstawiasz odpowiedni link czy dowolny inny html

ps.pisane z głowy, może być literówka
TheArt
Wiesz nie znam funkcji switch, z tego co rozumiem sprawdza ona poprzez case czy zmienna rowna sie zapisanej w apostrofy, jesli tak to wykonuje operacje pomiedzy case break, jesli nie, przechodzi do nastepnej petli case break. Znam sie na programowaniu, przez to szukalem w php czegos w postaci if else, teraz widze ze case break to podobna funkcja.

Czy jest jakas przewaga tego sposobu ktory napisales nad moim

Kod
<?php
$str = $_GET['page'];
if ($str == start){
echo ("
<img src=\"images/1.jpg\" width=25 height=15 border=\"0\">
");}
elseif ($str == start1){
echo ("
<img src=\"images/2.jpg\" width=25 height=15 border=\"0\">
");}
else
echo ("
<img src=\"images/optymalny.jpg\" width=25 height=15 border=\"0\">
");}
?>


Chodzi mi o to, ze dzieki if else, jest możliwość wstawienia linku, ktory będzie alternatywny, czyli jeśli żaden warunek nie będzie spełniony. Przy case break chyba nie da się tego zrobić.
behu
da się, pod tymi wszystkimi case'ami wstawiasz default, np:

  1. <?php
  2. switch($_GET['page']){
  3.    case 'page1':
  4.        ?>
  5.        tutaj wstawiasz link w czystym html'u odpowiadający page1
  6.        <?php
  7.    break;
  8.  
  9.    case 'page2':
  10.        ?>
  11.        tutaj wstawiasz link dla page2
  12.        <?php
  13.    break;
  14.  
  15.    case 'page3':
  16.        ?>
  17.        tutaj link dla page3
  18.        <?php
  19.    break;
  20.  
  21.    default:
  22.        ?>
  23.        tutaj link 'else', nie pasujący do pozostałych
  24.        <?php
  25. }
  26. ?>


ps. przewagi jednego nad drugim i odwrotnie raczej nie ma (no if jest nieznacznie szybsze), używasz tego co Ci wygodniej/czytelniej smile.gif
możesz też użyć echo tak jak w Twoim kodzie, np:
zamiast
  1. <?php
  2. case 'page1':
  3.    ?>
  4.        jakis html
  5.    <?php
  6. break;
  7. ?>


uzywasz:
  1. <?php
  2. case 'page1':
  3.    echo 'tutaj html tak jak u Ciebie';
  4. break;
  5. ?>
Wicepsik
Cytat(TheArt @ 25.06.2009, 14:08:22 ) *
Wiesz nie znam funkcji switch


Pora się nauczyć bo to podstawy
switch" title="Zobacz w manualu PHP" target="_manual
TheArt
Chyba przez to piszę w tym dziale, php jest mi tylko czasem potrzebne, właśnie teraz było. Dzięki chlopaki za tę garść danych, znów odrobinem mądrzejszy.
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.