Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: switch i użycie for
Forum PHP.pl > Forum > Przedszkole
xmarko
Zastanawiam się , czy jest możliwe użycie petli for pobierajacej dane z tablicy i zastosowanie wyników dla funkcji switch?
Stworzyłem coś takiego:
  1. <?php
  2.  
  3. $wyswietl_napis = array (&#092;"Strona główna\", \"O nas\" , \"kr\");
  4. $cas = array(&#092;"glowna\" , \"o_nas\" , \"kr\");
  5. $ile=count($cas);
  6.  
  7. switch($_GET['akcja'])
  8. {
  9. for ($i=; $i<$ile ; $i++)
  10. {
  11. case $cas[$i]. &#092;":\".$wyswietl.\"=(<div class=wpisy>\".$wyswietl_napis [$i].\"</div>\"; break;
  12. } 
  13. }
  14. print ($wyswietl);
  15. ?>

Zdaje sobie sprawę że konstrukcja jest błędna - nie działa.


A oto poprawnie działająca funkcja switch

  1. <?php
  2. switch($_GET['akcja']){
  3. case &#092;"glowna\":$wyswietl = (\"<div class=wpisy>Strona główna</div>\"); break;
  4. case &#092;"o_nas\":$wyswietl = (\"<div class=wpisy>O nas</div>\"); break;
  5. case &#092;"kr\":$wyswietl = (\"<div class=wpisy>kr</div>\"); break;
  6.  
  7. }
  8. print ($wyswietl);
  9.  
  10. ?>


Prosze o opinie , sugestie, informacje czy jest możliwe zbudowanie czegoś takiego.
Jeżeli jest taka możliwość - proszę o sugestie w jakim miejscu i w jaki sposób należy zmienić treść skryptu.
dr_bonzo
Nie ma to jak utrudniac sobie zycie smile.gif :
  1. <?php
  2. $dane = array( 'glowna' => 'Strona główna', 'o_nas' => 'O nas' ); // .. itd
  3.  
  4. if ( in_array( $_GET[ 'akcja' ] ) )
  5. {
  6. print( '<div class=wpisy>' . $dane[ $_GET[ 'akcja' ] ] . '</div>';
  7. }
  8. else
  9. {
  10. // brak takiej strony
  11. }
  12.  
  13. ?>
xmarko
Zgadza się można to tak zrobić.
Nadal nie mam jednak odpwiedzi co do tematu funkcji switch - czy można użyc funkcji for pobierającej dane z tablicy ?
Przykałd jest fajny , ale jak wykonać to przy zstosowaniu troche innej tablicy, która jest cześcią strony - nie moge jej zmienić.

  1. <?php
  2.  
  3. $link_adres = array( ' Strona główna' =>'glowna.php', 
  4.  'O nas' =>'o_nas.php',
  5. // i tak dalej...
  6. );
  7. ?>

za pomoca tej tablicy tworze sobie meni
  1. <?php
  2.  
  3. $baza_adres=&#092;"index2.php?akcja=\";
  4.  while (list($nazwa, $url) = each($link_adres))
  5. {
  6. echo &#092;"<a href=\".$baza_adres.str_replace('.php', '', $url).\">\".$nazwa.\"</a><br />\";
  7. }
  8.  
  9. ?>

Trzeba zauważyc, że zmieniam tu np : Strona glówna=>glowna.php przy zastosowaniu str_replace na "glowna".

JAk w takim przypadku powinien wyglądać kod zapisu :
  1. <?php
  2.  
  3. if ( in_array( $_GET[ 'akcja' ] ) )
  4. {
  5. ..................
  6. }
  7. ?>
ennics
zamiast for możesz użyć foreach

  1. <?php
  2.  
  3. $wyswietl_napis = array (&#092;"Strona główna\", \"O nas\" , \"kr\");
  4.  
  5. print &#092;"<a href='skrypt.php?akcja=foreach'>Pokaż</a>\";
  6.  
  7. switch($_GET['akcja'])
  8. {
  9.   case &#092;"foreach\":
  10.   foreach ( $wyswietl_napis as $zmienna )
  11.   {
  12.     print &#092;"<div class=wpisy>$zmienna</div>\";
  13.   }
  14.   break;
  15. }
  16.  
  17. ?>
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.